home *** CD-ROM | disk | FTP | other *** search
/ 3D Games (Spidla) / 3dhry1.iso / Duke...It's ZeroHour 1.4 / zerohour.exe / zerogame.con < prev    next >
Encoding:
Text File  |  1997-04-28  |  90.5 KB  |  4,002 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8.  
  9.  
  10. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  11.  
  12. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  13. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  14. multiplayer must be using the EXACT SAME .CON files, or the game will
  15. get out of sync and/or develop interesting problems.
  16.  
  17. 3D Realms encourages you to experiment freely with the parameters
  18. contained in this file, and to share your discoveries with the rest
  19. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  20. any technical support on how to use this file or other user-modifiable 
  21. features of this game.  Do NOT call 3D Realms or Apogee Software 
  22. for advice or help with this subject.  
  23.  
  24. You make modifications to this and other files at your own risk. 
  25. It is recommended that you first make a backup copy of this, or
  26. any .CON files before making any changes.
  27.  
  28. --------------------------------------------------------------------------------
  29.  
  30. */
  31.  
  32. include ZERODEFS.CON
  33. include ZEROUSER.CON
  34.  
  35.  
  36. state genericshrunkcode
  37.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  38.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  39. ends
  40.  
  41. move SHUTTLEVELS 16
  42.  
  43. actor SPACESHUTTLE TOUGH
  44.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  45. enda
  46.  
  47. actor SATELLITE TOUGH
  48.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  49.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  50. enda
  51.  
  52.  
  53.  
  54. // *********************
  55. // **** HOMING MINE ****
  56. // *********************
  57.  
  58.  
  59. action AMINERUN         0   2   1   1   15    
  60.  
  61. move MINEVEL 250
  62. move MINESTOP
  63.  
  64. ai AIMINERUN AMINERUN MINEVEL seekplayer
  65. ai AIMINESEARCH AMINERUN MINEVEL randomangle
  66.  
  67. state checkminehitstate
  68.     ifdead
  69.         {
  70.         ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  71.         debris SCRAP3 3
  72.           spawn EXPLOSION2
  73.            sound RPG_EXPLODE
  74.             hitradius 2048 10 15 20 25
  75.             killit
  76.         ifwasweapon FREEZEBLAST { spawn BURNING }
  77.         }
  78.     else
  79.     {
  80.     ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  81.     ifrnd 100
  82.         { sound PISTOL_RICOCHET }
  83.     else
  84.         { sound PISTOL_BODYHIT }
  85.     debris SCRAP2 1
  86.     }
  87. ends
  88.  
  89. actor SHARK 5 fall
  90. ifai 0 { ai AIMINERUN }
  91. sizeto 30 30
  92. soundonce DRON_ROAM
  93. ifcansee
  94.     {
  95.     ifpdistl 950
  96.         {
  97.           debris SCRAP3 3
  98.           spawn EXPLOSION2
  99.            sound RPG_EXPLODE
  100.             hitradius 2048 10 15 20 25
  101.             killit
  102.         }
  103.     }
  104. else
  105. ifai AIMINERUN
  106.     {
  107.     soundonce SOMETHINGFROZE
  108.     }
  109.  
  110. ifhitweapon { state checkminehitstate }
  111. enda
  112.  
  113.  
  114.  
  115. action BLIMPWAITTORESPAWN
  116.  
  117. state blimphitstate
  118.     cstat 0
  119.     spawn FIRSTGUNSPRITE
  120.     spawn EXPLOSION2
  121.  
  122.     debris SCRAP1 40            // Weapons and ammo!
  123.     debris SCRAP2 32
  124.     debris SCRAP3 32
  125.     debris SCRAP4 32
  126.     debris SCRAP5 32
  127.  
  128.     sound PIPEBOMB_EXPLODE
  129.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  130.     else killit
  131. ends
  132.  
  133. actor BLIMP 1
  134.  
  135.     ifaction BLIMPWAITTORESPAWN
  136.     {
  137.         ifcount RESPAWNACTORTIME
  138.         {
  139.             action 0
  140.             cstat 0
  141.             move 0
  142.         }
  143.         break
  144.     }
  145.  
  146.     ifhitweapon
  147.     {
  148.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  149.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  150.         ifwasweapon RPG state blimphitstate
  151.         strength 1
  152.     }
  153. enda
  154.  
  155.  
  156.  
  157. state rats
  158.     ifrnd 128 spawn RAT
  159.     ifrnd 128 spawn RAT
  160.     ifrnd 128 spawn RAT
  161.     ifrnd 128 spawn RAT
  162.     ifrnd 128 spawn RAT
  163.     ifrnd 128 spawn RAT
  164.     ifrnd 128 spawn RAT
  165.     ifrnd 128 spawn RAT
  166. ends
  167.  
  168. move RESPAWN_ACTOR_FLAG
  169.  
  170. action RUBCANDENT 1 1 1 1 1
  171. action RUBCAN
  172.  
  173. actor RUBBERCAN WEAK
  174.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  175.     else ifhitweapon
  176.     {
  177.         ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 killit }
  178.         else action RUBCANDENT
  179.     }
  180. enda
  181.  
  182. state headhitstate
  183. // Unrem the following line to involving screen tilting during
  184. // low player hitpoint damage.
  185.  
  186.  
  187. wackplayer
  188.  
  189.  
  190. ends
  191.  
  192.  
  193.  
  194.  
  195. actor FREEZEBLAST 1000
  196. ifpdistl 1000 { spawn BURNING addphealth 15 }
  197. enda
  198.  
  199.  
  200. action ARECON  0 2   1   1   5
  201.  
  202. actor RECON 0 ARECON
  203.     ifcount 1000 { killit }
  204. enda
  205.  
  206.  
  207.  
  208.  
  209.  
  210. action APIGCOPDIVE 0  1  1   1   1
  211.  
  212. move SHAFTVELS 700
  213.  
  214. ai AISHAFT APIGCOPDIVE SHAFTVELS randomangle
  215.  
  216. actor PIGCOPDIVE 10 
  217. ifai 0 { ai AISHAFT }
  218. ifrnd 64 { soundonce ENDSEQVOL2SND6 }
  219. ifcount 100 { killit }
  220. cstat 257
  221. ifpdistl 1000 { soundonce ENDSEQVOL2SND7 palfrom 16 32 wackplayer addphealth -5 }
  222. enda
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. action EXPBARRELFRAME         0   2   1   1   15
  231. actor EXPLODINGBARREL 26
  232.     fall
  233.     ifaction EXPBARRELFRAME
  234.     {
  235.         ifactioncount 2
  236.         {
  237.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  238.             spawn EXPLOSION2
  239.             debris SCRAP2 2
  240.             sound PIPEBOMB_EXPLODE
  241.             killit
  242.         }
  243.         break
  244.     }
  245.     ifsquished
  246.     {
  247.         debris SCRAP1 5
  248.         killit
  249.         break
  250.     }
  251.     ifhitweapon
  252.         {
  253.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  254.             action EXPBARRELFRAME
  255.         }
  256. enda
  257.  
  258. action BURNING_FLAME    0   12   1   1   2
  259. move BURNING_VELS 
  260.  
  261. state burningstate
  262.  
  263. ifgapzl 16 break
  264.  
  265.     
  266. ifspawnedby ROTATEGUN { sizeto 32 32 ifcount 356 { spawn SMALLSMOKE killit }  }
  267. else
  268. {
  269.     ifspawnedby LIZMAN
  270.         {
  271.         sizeto 40 40
  272.         ifinwater killit
  273.         ifonwater killit
  274.         ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  275.         soundonce FLESH_BURNING
  276.         ifcount 256    { sizeto 20 20 }
  277.         ifcount 512    { sizeto 10 10 }
  278.         ifcount 650    { killit }
  279.         }
  280.     ifspawnedby BOX { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  281.     else
  282.         {
  283.         ifspawnedby APLAYER
  284.             {
  285.             sizeto 40 40
  286.             ifinwater killit
  287.             ifonwater killit
  288.             ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  289.             soundonce FLESH_BURNING
  290.             ifcount 100 { spawn SMALLSMOKE killit }
  291.             }
  292.         else
  293.             {
  294.             sizeto 96 96
  295.             ifinwater killit
  296.             ifonwater killit
  297.             ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  298.             soundonce FLESH_BURNING
  299.  
  300.             ifcount 256 { sizeto 40 40 }
  301.             ifcount 512    { sizeto 20 20 }
  302.             ifcount 650    { sizeto 10 10 }
  303.             ifcount 750    { killit }
  304.             }
  305.         }
  306. }
  307.  
  308. ends
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315. actor BURNING WEAK BURNING_FLAME
  316.     state burningstate
  317. enda
  318.  
  319. actor BURNING2 WEAK BURNING_FLAME
  320.     state burningstate
  321. enda
  322.  
  323. action TOILETWATERFRAMES 0 4 1 1 1
  324. actor TOILETWATER 0 TOILETWATERFRAMES
  325.     ifpdistl 8192
  326.     {
  327.         soundonce WATER_GURGLE
  328.         ifspawnedby TOILET sizeto 34 34
  329.         else
  330.         {
  331.             ifspawnedby WATERFOUNTAINBROKE
  332.                 sizeto 6 15
  333.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  334.         }
  335.  
  336.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  337.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  338.         {
  339.             addphealth 1
  340.             globalsound DUKE_DRINKING
  341.             resetactioncount
  342.         }
  343.     }
  344. enda
  345.  
  346. action WOODENHORSEFRAME  0   1   4
  347. action WOODENFALLFRAME  122  1   5
  348.  
  349. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  350. actor WOODENHORSE WEAK WOODENHORSEFRAME
  351.     fall
  352.     ifhitweapon
  353.     {
  354.         ifdead
  355.         {
  356.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  357.             debris SCRAP1 4
  358.             debris SCRAP2 3
  359.             killit
  360.         }
  361.         else action WOODENFALLFRAME
  362.     }
  363. enda
  364.  
  365. state steamcode
  366.     ifpdistl 8192 soundonce STEAM_HISSING
  367.  
  368.     ifcount 20
  369.     {
  370.         resetcount
  371.         ifp palive ifpdistl 1024
  372.         {
  373.             addphealth -1
  374.             palfrom 16 16
  375.         }
  376.     }
  377.     else
  378.     {
  379.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  380.         sizeto 24 24
  381.     }
  382. ends
  383.  
  384. action STEAMFRAMES      0       5       1       1       1
  385. actor STEAM 0 STEAMFRAMES
  386.     state steamcode
  387. enda
  388.  
  389. actor CEILINGSTEAM 0 STEAMFRAMES
  390.     state steamcode
  391. enda
  392.  
  393. actor WATERBUBBLEMAKER 0 0 randomangle
  394.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  395. enda
  396.  
  397. action BUBBLE
  398. action CRACKEDBUBBLE    1
  399. move BUBMOVE           -10 -36
  400. move BUBMOVEFAST           -10 -52
  401.  
  402. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  403.  
  404.     ifaction CRACKEDBUBBLE
  405.     {
  406.         ifinwater ifrnd 192 killit
  407.         ifactioncount 7 killit
  408.     }
  409.     else
  410.     {
  411.         ifcount 4
  412.         {
  413.             ifrnd 192 move BUBMOVE getv geth randomangle
  414.             else move BUBMOVEFAST getv geth randomangle
  415.             resetcount
  416.         }
  417.  
  418.         ifonwater
  419.         {
  420.             iffloordistl 8 action CRACKEDBUBBLE
  421.         }
  422.         else ifactioncount 40 action CRACKEDBUBBLE
  423.     }
  424. enda
  425.  
  426. move SMOKEVEL 8 -16
  427. move ENGINE_SMOKE 64 -64
  428. move SMOKESHOOTOUT -192
  429. action SMOKEFRAMES 0 4 1 1 15
  430. actor SMALLSMOKE 0 SMOKEFRAMES
  431.     ifmove 0
  432.     {
  433.         ifspawnedby RECON
  434.             move SMOKESHOOTOUT geth
  435.         else ifspawnedby SECTOREFFECTOR
  436.             move ENGINE_SMOKE geth getv
  437.         else move SMOKEVEL geth getv faceplayer
  438.         ifspawnedby RPG
  439.         cstat 2
  440.       ifspawnedby COMMANDER
  441.         {
  442.         sizeto 80 80
  443.         move ENGINE_SMOKE
  444.         }
  445.     }
  446.     ifpdistl 1596 ifspawnedby RPG killit
  447.     ifactioncount 4 killit
  448. enda
  449.  
  450. action BARREL_DENTING  2 2 1 1 6
  451. action BARREL_DENTED   1
  452. action BARREL_DENTED2  2
  453.  
  454. move SPAWNED_BLOOD
  455.  
  456. actor NUKEBARRELDENTED WEAK
  457.     cactor NUKEBARREL
  458.     action BARREL_DENTED
  459. enda
  460.  
  461. actor NUKEBARRELLEAKED WEAK
  462.     cactor NUKEBARREL
  463.     action BARREL_DENTED2
  464. enda
  465.  
  466. actor NUKEBARREL MEDIUMSTRENGTH
  467.     ifsquished
  468.     {
  469.         debris SCRAP1 32
  470.         spawn BLOODPOOL
  471.         spawn OOZ
  472.         killit
  473.     }
  474.     fall
  475.     ifaction BARREL_DENTING
  476.     {
  477.         ifactioncount 2
  478.         {
  479.             debris SCRAP1 10
  480.             ifrnd 2 spawn BLOODPOOL
  481.             killit
  482.         }
  483.     }
  484.     else ifhitweapon
  485.     {
  486.         ifdead
  487.         {
  488.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  489.             sound VENT_BUST
  490.  
  491.             ifrnd 128
  492.                 spawn BLOODPOOL
  493.             action BARREL_DENTING
  494.         }
  495.         else
  496.         {
  497.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  498.             ifaction 0
  499.                 action BARREL_DENTED
  500.             else ifaction BARREL_DENTED
  501.             {
  502.                 action BARREL_DENTED2
  503.                 spawn BLOODPOOL
  504.             }
  505.             else ifaction BARREL_DENTED2
  506.                 action BARREL_DENTING
  507.         }
  508.     }
  509. enda
  510.  
  511. state burningbarrelcode
  512.     fall
  513.     ifcount 32
  514.     {
  515.         resetcount
  516.         ifp palive ifpdistl 1480 ifp phigher
  517.         {
  518.             addphealth -1
  519.             palfrom 16 16
  520.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  521.         }
  522.     }
  523.     ifhitweapon
  524.     {
  525.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  526.         sound VENT_BUST
  527.         debris SCRAP1 10
  528.         ifrnd 128 spawn BURNING
  529.         else spawn BURNING2
  530.         killit
  531.     }
  532. ends
  533.  
  534. actor FIREBARREL state burningbarrelcode enda
  535. actor FIREVASE state burningbarrelcode enda
  536.  
  537. action SHRINKERFRAMES 0 4 1 1 10
  538. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  539.     ifactioncount 4 killit
  540. enda
  541.  
  542. action EXPLOSION_FRAMES 0 20 1 1  4
  543. actor EXPLOSION2 1 EXPLOSION_FRAMES
  544.     ifactioncount 20 killit
  545. enda
  546.  
  547. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  548.     ifactioncount 20 killit
  549. enda
  550.  
  551. action FFLAME_FR 0 16 1 1 1
  552. action FFLAME 0 1 1 1 1
  553.  
  554. actor FLOORFLAME 0 FFLAME_FR
  555.         ifaction FFLAME_FR
  556.         {
  557.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  558.                 ifactioncount 16
  559.                     action FFLAME
  560.         }
  561.         ifaction FFLAME ifrnd 4
  562.         {
  563.              action FFLAME_FR
  564.              sound CAT_FIRE
  565.              resetactioncount
  566.         }
  567.  
  568. enda
  569.  
  570.  
  571.  
  572. action ASATNSPIN     -5 5 1 1 5
  573. action ASATSHOOTING -10 2 5 1 20
  574. action ASATWAIT      -5 1 5 1 1
  575. action ASATDEAD       0 1 5 1 1
  576. move TURRVEL
  577. action ATOURSHOOTING  0 2 5 1 7
  578. action ATOURWAIT      0 1 5 1 1
  579. action ATOURHIT       5 5 1 1 5
  580.  
  581. actor ROTATEGUN ROTTURRETSTRENGTH
  582.  
  583. ifaction ASATDEAD { }
  584. else
  585.     {
  586. ifspritepal 3
  587.     {
  588. //    spritepal 0
  589.     ifaction 0 
  590.         {
  591.         strength 400
  592.           action ATOURSHOOTING 
  593.           move TURRVEL faceplayerslow
  594.         }
  595.  
  596.     ifaction ATOURSHOOTING
  597.     {
  598.     ifcanshoottarget
  599.         {
  600.         ifactioncount 2
  601.             {
  602.             shoot FIRELASER
  603.             sound COMM_ATTACK
  604.             ifcount 28 { action ATOURWAIT }
  605.             resetactioncount
  606.             }
  607.         }
  608.     else
  609.         {
  610.         ifcansee
  611.             {
  612.             ifactioncount 2
  613.                 {
  614.                 shoot FIRELASER
  615.                 sound COMM_ATTACK
  616.                 ifcount 28 { action ATOURWAIT }
  617.                 resetactioncount
  618.                 }
  619.             }
  620.         else { action ATOURWAIT }
  621.         }
  622.     }
  623.  
  624.     else ifaction ATOURWAIT
  625.         { ifactioncount 45 ifp palive ifcansee { action ATOURSHOOTING move TURRVEL faceplayerslow } }
  626.  
  627.     ifspritepal 3
  628.         {
  629.     ifhitweapon
  630.         {
  631.         ifdead
  632.             {
  633.             addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit
  634.               ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  635.             }
  636.           else
  637.             {
  638.             ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  639.             action ATOURHIT debris SCRAP1 4 move 0
  640.             }
  641.         }
  642.     ifaction ATOURHIT
  643.         {
  644.         ifrnd 32 { action ATOURSHOOTING move TURRVEL faceplayerslow }
  645.         }
  646.     }
  647.     }
  648. else
  649.     {
  650.     ifaction 0
  651.     {
  652.         action ASATSHOOTING
  653.         move TURRVEL faceplayer
  654.     }
  655.     else ifaction ASATNSPIN
  656.         { ifactioncount 32 { action ASATWAIT move TURRVEL faceplayer } }
  657.     else ifaction ASATSHOOTING
  658.     {
  659.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  660.         ifcount 32 resetcount
  661.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  662.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
  663.     }
  664.     else ifaction ASATWAIT
  665.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  666.  
  667.     ifspritepal 3 { }
  668.     else
  669.         {
  670.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  671.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  672.         }
  673.     }
  674.     }
  675. enda
  676.  
  677. action RIP_F 0 8 1 1 1
  678. actor FORCERIPPLE 0 RIP_F
  679.     ifactioncount 8 killit
  680. enda
  681.  
  682. action TRANSFOWARD 0  6  1  1  2
  683. action TRANSBACK   5  6  1 -1  2
  684. actor TRANSPORTERSTAR 0 TRANSFOWARD
  685.     ifaction TRANSFOWARD
  686.     {
  687.         ifactioncount 6
  688.             action TRANSBACK
  689.     }
  690.     else
  691.         ifactioncount 6 killit
  692. enda
  693.  
  694. action BEAMFOWARD  0  4  1  1  9
  695. actor TRANSPORTERBEAM 0 BEAMFOWARD
  696.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  697.     ifactioncount 4 killit
  698. enda
  699.  
  700. state getcode
  701.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  702.     else globalsound DUKE_GET
  703.     palfrom 16 0 32
  704.     ifrespawn
  705.     {
  706.         move RESPAWN_ACTOR_FLAG
  707.         spawn RESPAWNMARKERRED
  708.         cstat 32768
  709.     }
  710.     else killit
  711. ends
  712.  
  713. state randgetweapsnds
  714.     ifrnd 64 globalsound DUKE_GETWEAPON1
  715.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  716.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  717.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  718.     else globalsound DUKE_GETWEAPON6
  719. ends
  720.  
  721. state getweaponcode
  722.  
  723.     state randgetweapsnds
  724.  
  725.     palfrom 32 0 32
  726.     ifgotweaponce 1 break
  727.     ifrespawn
  728.     {
  729.         move RESPAWN_ACTOR_FLAG
  730.         spawn RESPAWNMARKERRED
  731.         cstat 32768
  732.     }
  733.     else killit
  734. ends
  735.  
  736.  
  737. state respawnit
  738.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  739. ends
  740.  
  741. state quikget
  742.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  743.     else globalsound DUKE_GET
  744.     palfrom 16 0 32
  745.     killit
  746. ends
  747.  
  748. state quikweaponget
  749.     state randgetweapsnds
  750.     palfrom 32 0 32
  751.     ifgotweaponce 1 break
  752.     killit
  753. ends
  754.  
  755. actor STEROIDS
  756.     fall
  757.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  758.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  759.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  760.     {
  761.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  762.         ifspawnedby STEROIDS state getcode
  763.         else state quikget
  764.     }
  765. enda
  766.  
  767. actor HEATSENSOR
  768.     fall
  769.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  770.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  771.         ifcanseetarget
  772.     {
  773.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  774.         ifspawnedby HEATSENSOR state getcode
  775.         else state quikget
  776.     }
  777. enda
  778.  
  779. actor BOOTS
  780.     fall
  781.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  782.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  783.         ifcanseetarget
  784.     {
  785.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  786.         ifspawnedby BOOTS state getcode
  787.         else state quikget
  788.     }
  789. enda
  790.  
  791. actor SHIELD
  792.     fall
  793.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  794.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  795.         ifcanseetarget
  796.     {
  797.         ifspawnedby LIZTROOP
  798.         {
  799.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  800.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  801.             quote 104
  802.             sound KICK_HIT palfrom 24 0 32 killit
  803.         }
  804.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  805.         ifspawnedby SHIELD state getcode
  806.         else state quikget
  807.     }
  808. enda
  809.  
  810. actor AIRTANK
  811.     fall
  812.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  813.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  814.         ifcanseetarget
  815.     {
  816.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  817.         ifspawnedby AIRTANK state getcode
  818.         else state quikget
  819.     }
  820. enda
  821.  
  822. action HOLODUKE_FRAMES 0 4 1 1 8
  823. actor HOLODUKE 0 HOLODUKE_FRAMES
  824.     fall
  825.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  826.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  827.         ifcanseetarget
  828.     {
  829.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  830.         ifspawnedby HOLODUKE state getcode
  831.         else state quikget
  832.     }
  833. enda
  834.  
  835. actor JETPACK
  836.     fall
  837.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  838.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  839.     {
  840.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  841.         ifspawnedby JETPACK state getcode
  842.         else state quikget
  843.     }
  844. enda
  845.  
  846. actor ACCESSCARD
  847.     fall
  848.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  849.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  850.     {
  851.         ifpinventory GET_ACCESS 0 break
  852.         addinventory GET_ACCESS 1
  853.         quote 43
  854.         state getcode
  855.     }
  856. enda
  857.  
  858. // test boss_recod
  859.  
  860.  
  861. actor AMMO
  862.     fall
  863.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  864.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  865.     {
  866.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  867.         ifspawnedby AMMO state getcode
  868.         else state quikget
  869.     }
  870. enda
  871.  
  872. actor FREEZEAMMO
  873.     fall
  874.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  875.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  876.     {
  877.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  878.         ifspawnedby FREEZEAMMO state getcode
  879.         else state quikget
  880.     }
  881. enda
  882.  
  883.  
  884.  
  885. actor SHOTGUNAMMO
  886.     fall
  887.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  888.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  889.     {
  890.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  891.         ifspawnedby SHOTGUNAMMO state getcode
  892.         else state quikget
  893.     }
  894. enda
  895.  
  896. actor AMMOLOTS
  897.     fall
  898.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  899.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  900.     {
  901.         addammo PISTOL_WEAPON 48 quote 65
  902.         ifspawnedby AMMOLOTS state getcode
  903.         else state quikget
  904.     }
  905. enda
  906.  
  907. actor CRYSTALAMMO
  908.     fall
  909.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  910.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  911.     {
  912.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  913.         ifspawnedby CRYSTALAMMO state getcode
  914.         else state quikget
  915.     }
  916. enda
  917.  
  918. actor BATTERYAMMO
  919.     fall
  920.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  921.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  922.     {
  923.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  924.         ifspawnedby BATTERYAMMO state getcode
  925.         else state quikget
  926.     }
  927. enda
  928.  
  929. actor DEVISTATORAMMO
  930.     fall
  931.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  932.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  933.     {
  934.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  935.         ifspawnedby DEVISTATORAMMO state getcode
  936.         else state quikget
  937.     }
  938. enda
  939.  
  940. actor RPGAMMO
  941.     fall
  942.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  943.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  944.     {
  945.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  946.         ifspawnedby RPGAMMO state getcode
  947.         else state quikget
  948.     }
  949. enda
  950.  
  951. actor HBOMBAMMO
  952.     fall
  953.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  954.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  955.     {
  956.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  957.  
  958.         addweapon HANDBOMB_WEAPON 1 quote 55
  959.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  960.  
  961.         ifspawnedby HBOMBAMMO state getweaponcode
  962.         else state quikweaponget
  963.     }
  964. enda
  965.  
  966. actor RPGSPRITE
  967.     fall
  968.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  969.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  970.     {
  971.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  972.  
  973.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  974.         ifspawnedby RPGSPRITE state getweaponcode
  975.         else state quikweaponget
  976.     }
  977. enda
  978.  
  979. // 531.89 GTE.
  980. // IMA.
  981. // PO BOX 4629
  982. // Rocford ill, 61110-4629
  983. // Ms. Lee
  984.  
  985. actor SHOTGUNSPRITE
  986.     fall
  987.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  988.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  989.     {
  990.         ifspawnedby PIGCOP
  991.         {
  992.             addweapon SHOTGUN_WEAPON 0
  993.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  994.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  995.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  996.             else addammo SHOTGUN_WEAPON 1
  997.         }
  998.         else
  999.         {
  1000.             ifgotweaponce 0 break // Multiplayer only
  1001.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  1002.         }
  1003.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  1004.         else state quikweaponget
  1005.     }
  1006. enda
  1007.  
  1008.  
  1009.  
  1010. actor SIXPAK
  1011.     fall
  1012.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1013.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  1014.     {
  1015.         addphealth 30 quote 62
  1016.         ifspawnedby SIXPAK state getcode
  1017.         else state quikget
  1018.     }
  1019. enda
  1020.  
  1021. actor COLA
  1022.     fall
  1023.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1024.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  1025.     {
  1026.         addphealth 10 quote 61
  1027.         ifspawnedby COLA state getcode
  1028.         else state quikget
  1029.     }
  1030. enda
  1031.  
  1032. actor ATOMICHEALTH
  1033.     fall
  1034.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1035.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1036.         ifphealthl MAXPLAYERATOMICHEALTH
  1037.     {
  1038.         addphealth 50 quote 19
  1039.         ifspawnedby ATOMICHEALTH state getcode
  1040.         else state quikget
  1041.     }
  1042. enda
  1043.  
  1044.  
  1045.  
  1046.  
  1047. actor FIRSTAID
  1048.     fall
  1049.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1050.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  1051.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  1052.     {
  1053.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  1054.  
  1055.         ifspawnedby FIRSTAID state getcode
  1056.         else state quikget
  1057.     }
  1058. enda
  1059.  
  1060.  
  1061. actor FIRSTGUNSPRITE
  1062.     fall
  1063.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1064.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1065.     {
  1066.         ifgotweaponce 0 break
  1067.  
  1068.         addweapon PISTOL_WEAPON 48
  1069.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  1070.         else state quikweaponget
  1071.     }
  1072. enda
  1073.  
  1074.  
  1075. actor TRIPBOMBSPRITE
  1076.     fall
  1077.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1078.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1079.     {
  1080.         ifgotweaponce 0 break
  1081.  
  1082.         addweapon TRIPBOMB_WEAPON 1
  1083.         quote 58
  1084.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1085.         else state quikweaponget
  1086.     }
  1087. enda
  1088.  
  1089. actor CHAINGUNSPRITE
  1090.     fall
  1091.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1092.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1093.     {
  1094.         ifgotweaponce 0 break
  1095.  
  1096.         addweapon CHAINGUN_WEAPON 50 quote 54
  1097.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1098.         else state quikweaponget
  1099.     }
  1100. enda
  1101.  
  1102.  
  1103.  
  1104. actor SHRINKERSPRITE
  1105.     fall
  1106.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1107.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1108.     {
  1109.         ifgotweaponce 0 break
  1110.  
  1111.         addweapon SHRINKER_WEAPON 10 quote 60
  1112.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1113.         else state quikweaponget
  1114.     }
  1115. enda
  1116.  
  1117. actor FREEZESPRITE
  1118.     fall
  1119.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1120.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1121.     {
  1122.         ifgotweaponce 0 break
  1123.  
  1124.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1125.         ifspawnedby FREEZESPRITE state getweaponcode
  1126.         else state quikweaponget
  1127.     }
  1128. enda
  1129.  
  1130. actor DEVISTATORSPRITE
  1131.     fall
  1132.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1133.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1134.     {
  1135.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1136.  
  1137.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1138.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1139.         else state quikweaponget
  1140.     }
  1141. enda
  1142.  
  1143.  
  1144. state firestate
  1145.  
  1146.     ifgapzl 16 break
  1147.     ifinwater killit
  1148.  
  1149.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1150.  
  1151.     ifactor FIRE ifspawnedby FIRE break
  1152.     else ifactor FIRE2 ifspawnedby FIRE2 break
  1153.  
  1154.     iffloordistl 128
  1155.     {
  1156.         ifcount 32 sizeto 8 8
  1157.         ifcount 64 killit
  1158.     }
  1159.     else killit
  1160.  
  1161. ends
  1162.  
  1163. action FIRE_FRAMES     -1 14 1 1 1
  1164. move FIREVELS
  1165. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1166. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1167.  
  1168. actor FECES
  1169.     ifcount 24
  1170.     {
  1171.         ifpdistl RETRIEVEDISTANCE
  1172.         {
  1173.             soundonce DUKE_STEPONFECES
  1174.             sound STEPNIT
  1175.  
  1176.             spawn BLOODPOOL   // Will be brown
  1177.             killit
  1178.         }
  1179.     }
  1180.     else sizeto 32 32
  1181. enda
  1182.  
  1183. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  1184. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  1185. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  1186. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  1187. state drop_chaingun
  1188.     ifrnd SPAWNAMMOODDS
  1189.     {
  1190.         ifrnd 32 spawn CHAINGUNSPRITE
  1191.         else spawn BATTERYAMMO
  1192.     }
  1193. ends
  1194.  
  1195. state jib_sounds
  1196.     ifrnd SWEARFREQUENCY
  1197.     {
  1198.         ifrnd 16 globalsound JIBBED_ACTOR1
  1199.         else ifrnd 16 globalsound JIBBED_ACTOR2
  1200.         else ifrnd 16 globalsound JIBBED_ACTOR3
  1201.         else ifrnd 16 globalsound JIBBED_ACTOR5
  1202.         else ifrnd 16 globalsound JIBBED_ACTOR6
  1203.         else ifrnd 16 globalsound JIBBED_ACTOR10
  1204.         else ifrnd 16 globalsound JIBBED_ACTOR7
  1205.         else ifrnd 16 globalsound JIBBED_ACTOR4
  1206.         else ifrnd 16 globalsound JIBBED_ACTOR8
  1207.         else ifrnd 16 globalsound JIBBED_ACTOR13
  1208.         else ifrnd 16 globalsound JIBBED_ACTOR9
  1209.         else ifrnd 16 globalsound JIBBED_ACTOR11
  1210.         else ifrnd 16 globalsound JIBBED_ACTOR12
  1211.     }
  1212. ends
  1213.  
  1214. state standard_jibs
  1215.     guts JIBS2 1
  1216.     guts JIBS3 2
  1217.     guts JIBS4 3
  1218.     guts JIBS5 2
  1219.     guts JIBS6 3
  1220.     ifrnd 4 { guts JIBS1 1 spawn BLOODPOOL }               // spine
  1221.     state jib_sounds
  1222. ends
  1223.  
  1224. action FEMSHRUNK
  1225. action FEMFROZEN1 1
  1226. action FEMFROZEN2
  1227. action FEMDANCE1 19 1 1 1 16
  1228. action FEMDANCE3 19 1 1 1 26
  1229.  
  1230. action FEMDANCE2 20 2 1 1 10
  1231. action FEMANIMATE
  1232.  
  1233. action ASAW1 0 4 1 1 15
  1234. action ASAW2 740 2 1 1 20
  1235. action ASAW3 742 4 1 1 5
  1236.  
  1237. move SAWRUNVEL 50
  1238. move SAWATTACKVEL 100 30
  1239. move SAWATTACKUPVEL 100 -50
  1240. move SAWATTACKDOWNVEL 100 50
  1241. move SAWSTOP
  1242.  
  1243. ai AISAW1 ASAW1 SAWRUNVEL randomangle
  1244. ai AISAW2 ASAW2 SAWSTOP
  1245. ai AISAWATTACKUP ASAW3 SAWATTACKUPVEL faceplayer
  1246. ai AISAWATTACKDOWN ASAW3 SAWATTACKDOWNVEL faceplayer
  1247. ai AISAWATTACK ASAW3 SAWATTACKVEL faceplayer
  1248.  
  1249. state statesawhit
  1250.     ifdead
  1251.     {
  1252.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  1253.       addkills 1
  1254.       hitradius 1500 2 5 8 10
  1255.     sound RPG_EXPLODE
  1256.     spawn EXPLOSION2
  1257.     killit
  1258.     }
  1259.     else
  1260.     {
  1261.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  1262.  
  1263.     }
  1264. ends
  1265.  
  1266.  
  1267.  
  1268. // *****************
  1269. // *****************
  1270.  
  1271. // *****************
  1272. // *****************
  1273.  
  1274. actor PODFEM1 40 
  1275. sizeto 35 35 sizeto 35 35 sizeto 35 35 sizeto 35 35 sizeto 35 35
  1276. cstat 257
  1277. ifcansee
  1278. ifaction 0 { ai AISAW1 }
  1279.  
  1280. ifai AISAW1 { ifcansee { ifrnd 4 { ai AISAW2 } } }
  1281.  
  1282. ifai AISAW2 {
  1283.         ifactioncount 2 { ai AISAWATTACK }
  1284.         soundonce OCTA_ATTACK2
  1285.         }
  1286.  
  1287. ifai AISAWATTACK
  1288.     {
  1289.     sound OCTA_ATTACK1
  1290.     ifpdistl 1100
  1291.         {
  1292.         palfrom 32 32
  1293.         sound OCTA_DYING
  1294.         ifrnd 128 { addphealth -1 }
  1295.         }
  1296.  
  1297.         ifcansee { }
  1298.         else { ai AISAW1 soundonce DRON_PAIN }
  1299.  
  1300.  
  1301.  
  1302.     ifp phigher { ifrnd 16 { ai AISAWATTACKUP } }
  1303.     }
  1304.  
  1305. ifai AISAWATTACKUP
  1306.     {
  1307.     ifrnd 16
  1308.         {
  1309.         ifp phigher { }
  1310.         else { ai AISAWATTACK }
  1311.         }
  1312.     }
  1313.  
  1314. ifhitweapon state statesawhit
  1315.  
  1316. enda
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. state femcode
  1325.  
  1326.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1327.     {
  1328.         fall
  1329.         ifactor BLOODYPOLE ifhitweapon ifdead
  1330.             { state standard_jibs killit }
  1331.     }
  1332.  
  1333.     ifaction FEMSHRUNK
  1334.     {
  1335.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1336.         else ifcount SHRUNKCOUNT sizeto 40 40
  1337.         else state genericshrunkcode
  1338.     }
  1339.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1340.     else ifaction FEMDANCE2 { ifactioncount 8 action FEMDANCE3 }
  1341.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1342.     else ifaction FEMFROZEN1
  1343.     {
  1344.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1345.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1346.  
  1347.         ifhitweapon
  1348.         {
  1349.             ifwasweapon FREEZEBLAST { strength 0 break }
  1350.             lotsofglass 30
  1351.             sound GLASS_BREAKING
  1352.             respawnhitag
  1353.             ifrnd 84 spawn BLOODPOOL
  1354.             killit
  1355.         }
  1356.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1357.         break
  1358.     }
  1359.     else ifaction FEMFROZEN2
  1360.     {
  1361.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1362.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1363.  
  1364.         ifhitweapon
  1365.         {
  1366.             ifwasweapon FREEZEBLAST { strength 0 break }
  1367.             lotsofglass 30
  1368.  
  1369.             sound GLASS_BREAKING
  1370.             ifrnd 84 spawn BLOODPOOL
  1371.             respawnhitag
  1372.  
  1373.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1374.             else sound DUKE_HIT_STRIPPER2
  1375.  
  1376.             killit
  1377.         }
  1378.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1379.         break
  1380.     }
  1381.  
  1382.     ifhitweapon
  1383.     {
  1384.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1385.  
  1386.         ifdead
  1387.         {
  1388.             ifwasweapon FREEZEBLAST
  1389.             {
  1390.                 ifaction FEMSHRUNK break
  1391.  
  1392.                 ifactor NAKED1 action FEMFROZEN2
  1393.                 else ifactor FEM5 action FEMFROZEN2
  1394.                 else ifactor FEM6 action FEMFROZEN2
  1395.                 else ifactor FEM8 action FEMFROZEN2
  1396.                 else ifactor FEM9 action FEMFROZEN2
  1397.                 else ifactor PODFEM1 action FEMFROZEN2
  1398.                 else action FEMFROZEN1
  1399.  
  1400.                 move 0
  1401.                 spritepal 1
  1402.                 strength 0
  1403.  
  1404.                 sound SOMETHINGFROZE
  1405.  
  1406.                 break
  1407.             }
  1408.  
  1409.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1410.             else sound DUKE_HIT_STRIPPER2
  1411.  
  1412.             respawnhitag
  1413.             state standard_jibs
  1414.  
  1415.             shoot BLOODSPLAT1
  1416.             shoot BLOODSPLAT2
  1417.             shoot BLOODSPLAT3
  1418.             shoot BLOODSPLAT4
  1419.             spawn BLOODPOOL
  1420.  
  1421.             ifactor FEM1 money 5
  1422.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  1423. //            else ifactor FEM3 money 4
  1424.             else ifactor FEM7 money 8
  1425.  
  1426.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  1427.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  1428.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  1429.             else
  1430.             {
  1431.                 spritepal 6
  1432.                 soundonce LADY_SCREAM
  1433.                 ifactor NAKED1 debris SCRAP3 18
  1434.                 else ifactor PODFEM1 debris SCRAP3 18
  1435.                 killit
  1436.             }
  1437.         }
  1438.         else
  1439.         {
  1440.             sound SQUISHED
  1441.             guts JIBS6 1
  1442.             ifactor FEM8 break
  1443.             soundonce LADY_SCREAM
  1444.         }
  1445.     }
  1446. ends
  1447.  
  1448. state killme
  1449.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  1450. ends
  1451.  
  1452. state tipme
  1453.     ifp pfacing ifpdistl 1280 ifhitspace
  1454.     {
  1455.         tip
  1456.         ifrnd 128 soundonce DUKE_TIP1
  1457.         else soundonce DUKE_TIP2
  1458.         ifactor FEM1 action FEMDANCE1
  1459.     }
  1460. ends
  1461.  
  1462. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  1463. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  1464. actor FEM3 TOUGH FEMANIMATE state killme state femcode enda
  1465. // actor FEM4 TOUGH FEMANIMATE state killme state femcode enda
  1466.  
  1467. actor FEM4 TOUGH
  1468. cstat 32768
  1469. ifcansee
  1470.     {
  1471.     ifrnd 1
  1472.         {
  1473.         ifrnd 32 { soundonce ENDSEQVOL3SND8 }
  1474.         else ifrnd 32 { soundonce ENDSEQVOL3SND6 }
  1475.         else ifrnd 32 { soundonce ENDSEQVOL3SND5 }
  1476.         else ifrnd 32 { soundonce ENDSEQVOL3SND4 }
  1477.         }
  1478.     }
  1479. enda
  1480.  
  1481.  
  1482. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  1483. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  1484. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  1485. actor FEM8 TOUGH FEMANIMATE state femcode enda
  1486. actor FEM9 TOUGH FEMANIMATE state femcode enda
  1487. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  1488. // actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  1489. actor BLOODYPOLE TOUGH state femcode enda
  1490.  
  1491.  
  1492. actor STATUEFLASH fall // state statuehit
  1493.     ifcount 32 cactor STATUE
  1494. enda
  1495.  
  1496. actor STATUE
  1497.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  1498. enda
  1499.  
  1500. actor MIKE
  1501.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  1502. enda
  1503.  
  1504. state troop_body_jibs
  1505.     ifrnd 64 guts HEADJIB1 1
  1506.     ifrnd 64 guts LEGJIB1 2
  1507.     ifrnd 64 guts ARMJIB1 1
  1508.     ifrnd 48 spawn BLOODPOOL
  1509. ends
  1510.  
  1511. state liz_body_jibs
  1512.     ifrnd 128 { guts LIZMANHEAD1 1 spawn 2201 sound PIPEBOMB_BOUNCE }
  1513.     ifrnd 128 { guts HEADJIB1 1 spawn 1768 soundonce PIPEBOMB_BOUNCE }
  1514.     ifrnd 128 { guts LIZMANLEG1 2 spawn 2209 sound PIPEBOMB_BOUNCE }
  1515.     ifrnd 128 { guts LIZMANARM1 2 spawn 2205 soundonce PIPEBOMB_BOUNCE }
  1516. ends
  1517.  
  1518. state delete_enemy killit ends
  1519.  
  1520.  
  1521. action BLOODFRAMES 0 4 1 1 15
  1522. actor BLOOD 0 BLOODFRAMES
  1523.     ifspawnedby LIZMAN { }
  1524.     else
  1525.         {
  1526.         sizeto 72 72 sizeto 72 72 sizeto 72 72
  1527.         ifpdistg 3144 killit
  1528.         ifactioncount 4 killit
  1529.         }
  1530. enda
  1531.  
  1532. action EGGOPEN1 1 1 1 1 4
  1533. action EGGOPEN2 2 1 1 1 4
  1534. action EGGOPEN3 2 1 1 1 4
  1535. action EGGWAIT  0
  1536. action EGGFROZEN 1
  1537. action EGGSHRUNK 1
  1538.  
  1539. actor EGG TOUGH
  1540.     ifaction 0
  1541.     {
  1542.         ifcount 64
  1543.         {
  1544.             ifrnd 128 { action EGGWAIT move 0 }
  1545.             else
  1546.             {
  1547.                 sound SLIM_HATCH
  1548.                 action EGGOPEN1
  1549.             }
  1550.         }
  1551.     }
  1552.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  1553.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  1554.     else ifaction EGGSHRUNK
  1555.     {
  1556.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  1557.         else ifcount SHRUNKCOUNT sizeto 48 40
  1558.         else state genericshrunkcode
  1559.     }
  1560.     else ifaction EGGFROZEN
  1561.     {
  1562.         ifcount THAWTIME { action 0 getlastpal }
  1563.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1564.  
  1565.         ifhitweapon
  1566.         {
  1567.             ifwasweapon FREEZEBLAST { strength 0 break }
  1568.             lotsofglass 30
  1569.  
  1570.             sound GLASS_BREAKING
  1571.             ifrnd 84 spawn BLOODPOOL
  1572.  
  1573.             addkills 1
  1574.             killit
  1575.         }
  1576.  
  1577.         // ifp pducking
  1578.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1579.  
  1580.         break
  1581.     }
  1582.  
  1583.     ifhitweapon
  1584.     {
  1585.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  1586.  
  1587.         ifdead
  1588.         {
  1589.             ifwasweapon FREEZEBLAST
  1590.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  1591.  
  1592.             addkills 1
  1593.  
  1594.             sound SQUISHED
  1595.  
  1596.             state standard_jibs
  1597.             state delete_enemy
  1598.         }
  1599.     }
  1600.     else ifaction EGGWAIT
  1601.     {
  1602.         ifcount 512 ifrnd 2
  1603.         {
  1604.             ifaction EGGSHRUNK break
  1605.             sound SLIM_HATCH
  1606.             action EGGOPEN1
  1607.         }
  1608.     }
  1609.  
  1610. enda
  1611.  
  1612. actor KNEE KNEE_WEAPON_STRENGTH enda
  1613. actor SPIT SPIT_WEAPON_STRENGTH enda
  1614. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  1615. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  1616. actor    HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  1617. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  1618. actor MORTER MORTER_WEAPON_STRENGTH enda
  1619.  
  1620. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  1621. actor RPG RPG_WEAPON_STRENGTH enda
  1622. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  1623.  
  1624. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1625.  
  1626. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1627. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  1628. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  1629.  
  1630. action WEAP2FRAMES 0  4  1  1  6
  1631.  
  1632. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  1633.     ifdead killit
  1634.     ifactioncount 4 killit
  1635.     else
  1636.     {
  1637.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  1638.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  1639.     }
  1640. enda
  1641.  
  1642. state standard_pjibs
  1643.     guts JIBS1 1
  1644.     guts JIBS3 2
  1645.     guts JIBS4 1
  1646.     guts JIBS5 1
  1647.     guts JIBS6 2
  1648.     guts DUKETORSO 1
  1649.     guts DUKELEG 2
  1650.     guts DUKEGUN 1
  1651.     ifrnd 16 money 1
  1652. ends
  1653.  
  1654. move DUKENOTMOVING
  1655. state handle_dead_dukes
  1656.     fall
  1657.     ifmove 0     // 1st time initializiation...
  1658.     {
  1659.         ifrnd 128 cstat 4
  1660.         else cstat 0
  1661.         move DUKENOTMOVING
  1662.     }
  1663.  
  1664.     ifsquished
  1665.     {
  1666.         sound SQUISHED
  1667.         spawn OOZ
  1668.         killit
  1669.     }
  1670.     else ifcount 1024 ifpdistg 4096 killit
  1671.     else
  1672.     {
  1673.         strength 0
  1674.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  1675.         {
  1676.             state standard_jibs
  1677.             killit
  1678.         }
  1679.     }
  1680. ends
  1681.  
  1682. action PLYINGFRAMES 0 1 0 1 1
  1683. actor DUKELYINGDEAD 0 PLYINGFRAMES
  1684.     state handle_dead_dukes
  1685. enda
  1686.  
  1687. action PSTAND       0   1   5   1    1
  1688. action PEXPLODE     106   5   1   1   10
  1689. action PEXPLODEAD   113   1   1
  1690.  
  1691. action PJPHOUVER    15   1   5   1
  1692. action PWALK        20   4   5   1   16
  1693. action PRUN         20   4   5   1   10
  1694. action PWALKBACK    45   4   5  -1   16
  1695. action PRUNBACK     45   4   5  -1   10
  1696. action PJUMPING     50   4   5   1   30
  1697. action PFALLING     65   1   5
  1698. action PDUCKING     86   1   5
  1699. action PCRAWLING    86   3   5   1   20
  1700. action PAKICKING    40   2   5   1   25
  1701. action PFLINTCHING  106  1   1   1   10
  1702. action PTHROWNBACK  106  5   1   1   18
  1703. action PFROZEN       20  1   5
  1704. action PLYINGDEAD   113  1   1
  1705.  
  1706. action PSWIMMINGGO   375   1   5   1   10
  1707. action PSWIMMING     375   4   5   1   13
  1708. action PSWIMMINGWAIT 395   1   5   1   13
  1709. action PTREDWATER    395   2   5   1   17
  1710.  
  1711. move PSTOPED
  1712. move PSHRINKING // used as a var only
  1713.  
  1714. state check_dead_thrown_back
  1715.     ifdead
  1716.     {
  1717.         strength 0
  1718.         action PTHROWNBACK
  1719.     }
  1720. ends
  1721.  
  1722. state check_pstandard
  1723.     ifp pwalking action PWALK
  1724.     else ifp pkicking action PAKICKING
  1725.     else ifp pwalkingback action PWALKBACK
  1726.     else ifp prunning action PRUN
  1727.     else ifp prunningback action PRUNBACK
  1728.     else ifp pjumping
  1729.         action PJUMPING
  1730.     else ifp pducking action PDUCKING
  1731. ends
  1732.  
  1733. state random_wall_jibs
  1734.     ifrnd 96 shoot BLOODSPLAT1
  1735.     ifrnd 96 shoot BLOODSPLAT2
  1736.     ifrnd 96 shoot BLOODSPLAT3
  1737.     ifrnd 96 shoot BLOODSPLAT4
  1738.     ifrnd 96 shoot BLOODSPLAT1
  1739. ends
  1740.  
  1741. actor APLAYER 100 PSTAND 0 0
  1742.     ifaction 0 action PSTAND
  1743.  
  1744.     ifphealthl 15 { soundonce SLIM_ROAM }
  1745.     else { ifphealthl 30 { soundonce SLIM_HATCH } }
  1746.  
  1747.  
  1748.     ifdead
  1749.     {
  1750.         ifsquished palfrom 32 63 63 63
  1751.         else fall
  1752.  
  1753.         ifactioncount 7 { move 0 } else ifactioncount 6
  1754.         {
  1755.             ifmultiplayer { }
  1756.             else
  1757.             {
  1758.                 ifrnd 32 sound DUKE_KILLED5
  1759.                 else ifrnd 32 sound DUKE_KILLED3
  1760.                 else ifrnd 32 sound DUKE_KILLED1
  1761.                 else ifrnd 32 sound DUKE_KILLED2
  1762.             }
  1763.         }
  1764.  
  1765.         ifaction PLYINGDEAD
  1766.         {
  1767.             ifactioncount 3 move PSTOPED
  1768.             quote 13
  1769.             ifhitspace
  1770.             {
  1771.                 action PSTAND
  1772.                 spawn DUKELYINGDEAD
  1773.                 resetplayer
  1774.             }
  1775.             break
  1776.         }
  1777.         else ifaction PTHROWNBACK
  1778.         {
  1779.             ifactioncount 5
  1780.             {
  1781.                 spawn BLOODPOOL
  1782.                 action PLYINGDEAD
  1783.             }
  1784.             else ifactioncount 1 move 0
  1785.             break
  1786.         }
  1787.         else ifaction PFROZEN
  1788.         {
  1789.             cstat 257
  1790.  
  1791.             palfrom 16 0 0 24
  1792.  
  1793.             ifhitweapon
  1794.             {
  1795.                 ifwasweapon FREEZEBLAST break
  1796.                 lotsofglass 60
  1797.                 ifrnd 84 spawn BLOODPOOL
  1798.  
  1799.                 getlastpal
  1800.                 sound GLASS_BREAKING
  1801.                 spawn ATOMICHEALTH
  1802.                 cstat 32768
  1803.                 action PLYINGDEAD
  1804.                 break
  1805.             }
  1806.  
  1807.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  1808.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  1809.  
  1810.             ifp pfacing   // assumes some other player
  1811.                 ifpdistl FROZENQUICKKICKDIST pkick
  1812.  
  1813.             break
  1814.         }
  1815.         else ifaction PEXPLODEAD
  1816.         {
  1817.             quote 13
  1818.             ifhitspace
  1819.             {
  1820.                 action PSTAND
  1821.                 resetplayer
  1822.             }
  1823.             break
  1824.         }
  1825.         else ifaction PEXPLODE
  1826.         {
  1827.             ifactioncount 5
  1828.             {
  1829.                 action PEXPLODEAD
  1830.                 spawn BLOODPOOL
  1831.             }
  1832.             break
  1833.         }
  1834.  
  1835.         else ifp pshrunk
  1836.         {
  1837.             state standard_pjibs
  1838.             spawn BLOODPOOL
  1839.  
  1840.             sound SQUISHED
  1841.             sound DUKE_DEAD
  1842.  
  1843.             cstat 32768                 // Hide the sprite
  1844.  
  1845.             action PLYINGDEAD
  1846.         }
  1847.  
  1848.         else
  1849.         {
  1850.             ifinwater
  1851.             {
  1852.                 action PLYINGDEAD
  1853.                 spawn WATERBUBBLE
  1854.                 spawn WATERBUBBLE
  1855.             }
  1856.             else
  1857.             {
  1858.                 action PEXPLODE
  1859.                 state standard_pjibs
  1860.                 cstat 32768
  1861.                 sound SQUISHED
  1862.                 sound DUKE_DEAD
  1863.             }
  1864.         }
  1865.         break
  1866.     }
  1867.  
  1868.     ifsquished
  1869.     {
  1870.         strength -1
  1871.         sound SQUISHED
  1872.         spawn OOZ
  1873.         break
  1874.     }
  1875.  
  1876.     ifp ponsteroids
  1877.     {
  1878.         ifp pstanding { }
  1879.         else spawn FRAMEEFFECT1
  1880.     }
  1881.  
  1882.     ifmove PSHRINKING
  1883.     {
  1884.         ifcount 32
  1885.         {
  1886.             ifcount SHRUNKDONECOUNT move 0
  1887.             else ifcount SHRUNKCOUNT
  1888.             {
  1889.                 sizeto 42 36
  1890.                 ifgapzl 24
  1891.                 {
  1892.                     strength 0
  1893.                     sound SQUISHED
  1894.                     palfrom 48 64
  1895.                     break
  1896.                 }
  1897.             }
  1898.             else ifp ponsteroids count SHRUNKCOUNT
  1899.         }
  1900.         else
  1901.         {
  1902.             ifp ponsteroids count SHRUNKCOUNT
  1903.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1904.         }
  1905.     }
  1906.  
  1907.     else ifhitweapon
  1908.     {
  1909.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  1910.         else
  1911.         {
  1912.             ifmultiplayer
  1913.             {
  1914.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  1915.                 {
  1916.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  1917.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  1918.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  1919.                     else sound DUKE_DEAD
  1920.                 }
  1921.                 else
  1922.                 {
  1923.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  1924.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  1925.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  1926.                     else sound DUKE_LONGTERM_PAIN8
  1927.                 }
  1928.             }
  1929.             else
  1930.             {
  1931.                 ifphealthl YELLHURTSOUNDSTRENGTH
  1932.                 {
  1933.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  1934.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  1935.                     else sound DUKE_LONGTERM_PAIN4
  1936.                 }
  1937.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  1938.             }
  1939.         }
  1940.         ifstrength TOUGH
  1941.         {
  1942.             state headhitstate
  1943.             sound DUKE_GRUNT
  1944.             ifp pstanding action PFLINTCHING
  1945.         }
  1946.  
  1947.         ifwasweapon RPG
  1948.         {
  1949.             ifrnd 32 spawn BLOOD
  1950.             ifdead state standard_pjibs
  1951.             palfrom 48 52
  1952.             break
  1953.         }
  1954.         ifwasweapon RADIUSEXPLOSION
  1955.         {
  1956.             ifrnd 32 spawn BLOOD
  1957.             ifdead state standard_pjibs
  1958.             palfrom 48 52
  1959.             break
  1960.         }
  1961.         ifwasweapon FIREEXT
  1962.         {
  1963.             ifrnd 32 spawn BLOOD
  1964.             ifdead state standard_pjibs
  1965.             palfrom 48 52
  1966.             break
  1967.         }
  1968.  
  1969.         ifwasweapon SHRINKSPARK
  1970.         {
  1971.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  1972.             break
  1973.         }
  1974.  
  1975.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1976.         else ifwasweapon FREEZEBLAST
  1977.         {
  1978.             palfrom 32 32
  1979.         ifwasweapon FREEZEBLAST { spawn BURNING }
  1980.         }
  1981.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1982.         else ifwasweapon KNEE palfrom 16 32
  1983.         else ifwasweapon FIRELASER palfrom 32 32
  1984.         state check_dead_thrown_back
  1985.         state random_wall_jibs
  1986.  
  1987.         break
  1988.     }
  1989.  
  1990.     ifaction PFLINTCHING
  1991.     {
  1992.         ifactioncount 2 action PSTAND
  1993.         break
  1994.     }
  1995.  
  1996.     ifinwater
  1997.     {
  1998.         ifaction PTREDWATER
  1999.         {
  2000.             ifp pwalking prunning action PSWIMMINGGO
  2001.         }
  2002.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  2003.         else
  2004.         {
  2005.             ifaction PSWIMMING
  2006.             {
  2007.                 ifrnd 4 spawn WATERBUBBLE
  2008.                 ifactioncount 4
  2009.                     action PSWIMMINGWAIT
  2010.             }
  2011.             else ifaction PSWIMMINGWAIT
  2012.             {
  2013.                 ifactioncount 2
  2014.                     action PSWIMMINGGO
  2015.             }
  2016.             else ifaction PSWIMMINGGO
  2017.             {
  2018.                 ifactioncount 2
  2019.                     action PSWIMMING
  2020.             }
  2021.             else action PTREDWATER
  2022.         }
  2023.  
  2024.         ifrnd 4 spawn WATERBUBBLE // For effect
  2025.  
  2026.         break
  2027.     }
  2028.     else ifp pjetpack
  2029.     {
  2030.         ifaction PJPHOUVER
  2031.         {
  2032.             ifactioncount 4
  2033.                 resetactioncount
  2034.         }
  2035.         else action PJPHOUVER
  2036.         break
  2037.     }
  2038.     else
  2039.     {
  2040.         ifaction PTREDWATER action PSTAND
  2041.         ifaction PSWIMMING action PSTAND
  2042.         ifaction PSWIMMINGWAIT action PSTAND
  2043.         ifaction PSWIMMINGGO action PSTAND
  2044.         ifaction PJPHOUVER action PFALLING
  2045.     }
  2046.  
  2047.     ifaction PFALLING
  2048.     {
  2049.         ifp ponground
  2050.             action PSTAND
  2051.         else
  2052.         {
  2053.             ifp pfalling break
  2054.             else state check_pstandard
  2055.         }
  2056.     }
  2057.  
  2058.     ifaction PDUCKING
  2059.     {
  2060.         ifgapzl 48
  2061.         {
  2062.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2063.         }
  2064.         else ifp pducking
  2065.         {
  2066.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2067.         }
  2068.         else
  2069.         {
  2070.             ifp pstanding action PSTAND
  2071.             else state check_pstandard
  2072.         }
  2073.     }
  2074.  
  2075.     else ifaction PCRAWLING
  2076.     {
  2077.         ifgapzl 48
  2078.         {
  2079.             ifp pstanding action PCRAWLING
  2080.         }
  2081.         else ifp pducking
  2082.         {
  2083.             ifp pstanding action PDUCKING
  2084.         }
  2085.         else
  2086.         {
  2087.             ifp pstanding action PSTAND
  2088.             else state check_pstandard
  2089.         }
  2090.     }
  2091.     else ifgapzl 48 action PDUCKING
  2092.  
  2093.     else ifaction PJUMPING
  2094.     {
  2095.         ifp ponground action PSTAND
  2096.         else ifactioncount 4 ifp pfalling action PFALLING
  2097.     }
  2098.  
  2099.     ifp pfalling action PFALLING
  2100.     else ifaction PSTAND state check_pstandard
  2101.     else ifaction PAKICKING
  2102.     {
  2103.         ifactioncount 2 action PSTAND
  2104.         break
  2105.     }
  2106.     else ifaction PWALK
  2107.     {
  2108.         ifp pfalling action PFALLING
  2109.         else ifp pstanding action PSTAND
  2110.         else ifp prunning action PRUN
  2111.         else ifp pwalkingback action PWALKBACK
  2112.         else ifp prunningback action PRUNBACK
  2113.         else ifp pjumping
  2114.             action PJUMPING
  2115.         else ifp pducking action PDUCKING
  2116.     }
  2117.  
  2118.     else ifaction PRUN
  2119.     {
  2120.         ifp pstanding action PSTAND
  2121.         else ifp pwalking action PWALK
  2122.         else ifp pwalkingback action PWALKBACK
  2123.         else ifp prunningback action PRUNBACK
  2124.         else ifp pjumping
  2125.             action PJUMPING
  2126.         else ifp pducking action PDUCKING
  2127.     }
  2128.  
  2129.     else ifaction PWALKBACK
  2130.     {
  2131.         ifp pstanding action PSTAND
  2132.         else ifp pwalking action PWALK
  2133.         else ifp prunning action PRUN
  2134.         else ifp prunningback action PRUNBACK
  2135.         else ifp pjumping
  2136.             action PJUMPING
  2137.         else ifp pducking action PDUCKING
  2138.     }
  2139.  
  2140.     else ifaction PRUNBACK
  2141.     {
  2142.         ifp pstanding action PSTAND
  2143.         else ifp pwalking action PWALK
  2144.         else ifp prunning action PRUN
  2145.         else ifp pwalkingback action PWALKBACK
  2146.         else ifp pjumping
  2147.             action PJUMPING
  2148.         else ifp pducking action PDUCKING
  2149.     }
  2150. enda
  2151.  
  2152. actor ORGANTIC TURRETSTRENGTH
  2153.     ifcount 48 resetcount
  2154.     else { ifcount 32 sizeto 32 32 }
  2155.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  2156.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  2157.     ifrnd 1 soundonce TURR_ROAM
  2158. enda
  2159.  
  2160. state rf
  2161.     ifrnd 128 cstat 4
  2162.     else cstat 0
  2163. ends
  2164.  
  2165. action ATROOPWALKING 0    4    5    1   12
  2166. move SHRUNKVELS 32
  2167. move TROOPWALKVELS 72
  2168. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2169.  
  2170. state checksquished
  2171.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  2172. ends
  2173.  
  2174.  
  2175. state spawnstuff
  2176. ifrnd 128
  2177.     {
  2178.     ifrnd 128 { spawn COLA }
  2179.     else
  2180.         {
  2181.         ifrnd 128 { spawn SIXPAK }
  2182.         else { ifrnd 10 { spawn FIRSTAID } }
  2183.         }
  2184.     }
  2185. else
  2186.     {
  2187.     ifrnd 128 { spawn AMMO }
  2188.     else
  2189.         {
  2190.         ifrnd 128 { spawn SHIELD }
  2191.         else
  2192.             {
  2193.             ifrnd 64 { spawn SHOTGUNAMMO }
  2194.             else
  2195.             {
  2196.                 ifrnd 32 { spawn BATTERYAMMO }
  2197.                 else
  2198.                     {
  2199.                     ifrnd 16 { spawn RPGAMMO }
  2200.                     }
  2201.                 }
  2202.             }
  2203.         ifrnd 8 { spawn FREEZEAMMO }
  2204.         }
  2205.     }
  2206. ends
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213. //
  2214. //
  2215. //      TROOP/LIZTROOP CODE
  2216. //
  2217. //
  2218.  
  2219. action ASERVRUN         2110    7     5     1     9
  2220. action ASERVPREPFIRE    2150    2     5     1     20
  2221. action ASERVFIRE        2155    2     5     1     15
  2222. action ASERVPREPJUMP    2165    1     5
  2223. action ASERVPREPJUMP2   2170    1     5
  2224. action ASERVJUMP        2175    2     5     1     50
  2225. action ASERVBAFFE       2210    5     5     1     25
  2226. action ASERVHIT         2200    1     5
  2227. action ASERVHIT2        2205    1     5
  2228. action ASERVDYING       2185    3     5     1     35
  2229. action ASERVDEAD        2195    1     5 
  2230. action ASERVPREPDODGE   2230    4     5     1     15 
  2231. action ASERVDODGE       2235    3     5     1     15
  2232.  
  2233. move SERVRUNVELS 160
  2234. move SERVJUMPVELS 350
  2235. move SERVSTOPVELS 0
  2236. move SERVDODGEVELS 250
  2237.  
  2238. ai AISERVDODGE ASERVPREPDODGE SERVDODGEVELS dodgebullet
  2239. ai AISERVBAFFE ASERVBAFFE SERVSTOPVELS faceplayer
  2240. ai AISERVHIT ASERVHIT SERVSTOPVELS faceplayer
  2241. ai AISERVRUN ASERVRUN SERVRUNVELS seekplayer
  2242. ai AISERVPREPFIRE ASERVPREPFIRE SERVSTOPVELS faceplayer
  2243. ai AISERVFIRE ASERVFIRE SERVSTOPVELS faceplayer
  2244. ai AISERVPREPJUMP ASERVPREPJUMP SERVSTOPVELS faceplayer
  2245. ai AISERVJUMP ASERVJUMP SERVJUMPVELS jumptoplayer
  2246. ai AISERVDYING ASERVDYING SERVSTOPVELS
  2247.  
  2248.  
  2249. state checkservhitstate
  2250.     spawn BLOOD
  2251.     ifdead
  2252.     {
  2253.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2254.       state random_wall_jibs
  2255.         addkills 1
  2256.             ifspritepal 24 { spawn SHOTGUNAMMO }
  2257.         state spawnstuff
  2258.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  2259.         else
  2260.         {
  2261.         ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2262.         else
  2263.             {
  2264.             soundonce PIG_DYING
  2265.             }
  2266.         }
  2267.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2268.  
  2269.     ai AISERVDYING
  2270.     spawn BLOODPOOL
  2271.      }
  2272.     else
  2273.     {
  2274.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2275.       ifrnd 64 { soundonce PIG_PAIN }
  2276.     ifai AISERVHIT { }
  2277.     else
  2278.         {
  2279.         ifai AISERVDODGE { }
  2280.         else
  2281.             {
  2282.             ifai AISERVFIRE
  2283.                 {
  2284.                 ifrnd 64 { action ASERVHIT2 }
  2285.                 }
  2286.             else
  2287.                 {
  2288.                 ai AISERVHIT
  2289.                 ifrnd 128 { action ASERVHIT }
  2290.                 else { action  ASERVHIT2 }
  2291.                 }
  2292.             }
  2293.         ifspritepal 24 { ifrnd 32 { ifwasweapon SHOTSPARK1 { ai AISERVHIT action ASERVHIT2 } } }
  2294.         else { ifwasweapon SHOTSPARK1 { ai AISERVHIT action ASERVHIT2 } }
  2295.         }
  2296.  
  2297.     ifwasweapon FREEZEBLAST { spawn BURNING }
  2298.  
  2299.         sound PIG_PAIN
  2300.         state random_wall_jibs
  2301.     }
  2302. ends
  2303.  
  2304. actor LIZTROOPSTAYPUT 170 ASERVRUN ai AISERVRUN cactor LIZTROOP enda
  2305.  
  2306. actor LIZTROOP 80 fall
  2307. ifcansee
  2308. sizeto 25 25
  2309. ifaction 0
  2310.     {
  2311.      soundonce PIG_ATTACK
  2312.     ifspritepal 24 { strength 200 }
  2313.     ifspawnedby BOSS3 { spritepal 24 strength 270 }
  2314.     ai AISERVRUN
  2315.     }
  2316.  
  2317. ifactornotstayput
  2318. {
  2319. ifai AISERVDYING
  2320.     {
  2321.     ifactioncount 3 { action ASERVDEAD }
  2322.     else
  2323.         {
  2324.              strength 0 
  2325.         cstat 0 
  2326.         ifhitweapon
  2327.             {
  2328.             ifwasweapon FREEZEBLAST { spawn BURNING }
  2329.             ifwasweapon KNEE { sound SQUISHED killit } 
  2330.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED killit } 
  2331.             }
  2332.         ifaction ASERVDEAD { }
  2333.         else { spawn BLOOD }
  2334.         }
  2335.     }
  2336. else
  2337.     {
  2338.     ifai AISERVDODGE
  2339.         {
  2340.         ifactioncount 4 { action ASERVDODGE }
  2341.         ifcount 30 { ai AISERVFIRE }
  2342.         }
  2343.     else
  2344.         {
  2345.         ifrnd 4 { ifcanshoottarget { ai AISERVPREPFIRE } }
  2346.         ifrnd 1 { ifrnd 128 { ai AISERVPREPJUMP } }
  2347.  
  2348.         ifai AISERVHIT { }
  2349.         else { ifbulletnear { ai AISERVDODGE } }
  2350.         }
  2351.  
  2352.     ifai AISERVBAFFE { }
  2353.     else { ifpdistl 3500 { ifrnd 3 { ai AISERVPREPJUMP } } }
  2354.  
  2355.     ifai AISERVBAFFE { }
  2356.     else { ifpdistl 1000 { ifcanshoottarget { ai AISERVBAFFE } } }
  2357.  
  2358.     ifai AISERVRUN { ifp phigher    { ai AISERVPREPJUMP } }
  2359.  
  2360.     ifai AISERVBAFFE 
  2361.         {
  2362.         ifcanshoottarget
  2363.             {
  2364.             ifpdistl 1000
  2365.                     {
  2366.                     ifactioncount 3
  2367.                         {
  2368.                         ifspritepal 24 { addphealth -20 }
  2369.                         else { addphealth -13 }
  2370.                         wackplayer
  2371.                         palfrom 32 32
  2372.                         resetactioncount
  2373.                         }
  2374.                     }
  2375.             else { ai AISERVRUN }
  2376.             }
  2377.         }
  2378.  
  2379.     ifai AISERVHIT { ifcount 20 { ai AISERVRUN } }
  2380.  
  2381.     ifai AISERVPREPJUMP
  2382.         {
  2383.         ifaction ASERVPREPJUMP { ifcount 7 { action ASERVPREPJUMP2 } }
  2384.         ifaction ASERVPREPJUMP2 { ifcount 2 { ai AISERVJUMP } }
  2385.         }
  2386.  
  2387.     ifai AISERVJUMP
  2388.         {
  2389.         ifpdistl 1100
  2390.             {
  2391.             ifspritepal 24 { addphealth -30 }
  2392.             else { addphealth -20 }
  2393.             wackplayer
  2394.             palfrom 32 32
  2395.             }
  2396.  
  2397.         ifcount 30
  2398.             {
  2399.             iffloordistl 2 { action ASERVPREPJUMP2 }
  2400.             ifaction ASERVPREPJUMP2 { ifcount 5 ai AISERVRUN }
  2401.             }
  2402.         }
  2403.  
  2404.     ifai AISERVPREPFIRE { ifactioncount 2 { resetactioncount ai AISERVFIRE     shoot FIRELASER } }
  2405.  
  2406.     ifai AISERVFIRE
  2407.     {
  2408.         ifspritepal 24 { ifcount 30 { ai AISERVRUN } }
  2409.         else { ifcount 20 { ai AISERVRUN } }    
  2410.  
  2411.         ifactioncount 2
  2412.             {
  2413.             sound PRED_ATTACK
  2414.             ifspritepal 24 { shoot FIRELASER shoot FIRELASER }
  2415.             else { shoot FIRELASER }
  2416.             resetactioncount
  2417.             }
  2418.     }
  2419.  
  2420. ifhitweapon state checkservhitstate
  2421.  
  2422. }
  2423. }
  2424. else
  2425. {
  2426. ifai AISERVDYING
  2427.     {
  2428.     ifactioncount 3 { action ASERVDEAD }
  2429.     else
  2430.         {
  2431.              strength 0 
  2432.         ifhitweapon
  2433.             {
  2434.             ifwasweapon FREEZEBLAST { spawn BURNING }
  2435.             ifwasweapon KNEE { sound SQUISHED killit } 
  2436.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED killit } 
  2437.             }
  2438.         ifaction ASERVDEAD { }
  2439.         else { spawn BLOOD }
  2440.         }
  2441.     }
  2442. else
  2443.     {
  2444.     ifai AISERVDODGE { ai AISERVFIRE }
  2445.     else
  2446.         {
  2447.         ifrnd 4 { ifcanshoottarget { ai AISERVPREPFIRE } }
  2448.         }
  2449.  
  2450.     ifai AISERVBAFFE { }
  2451.     else { ifpdistl 1000 { ifcanshoottarget { ai AISERVBAFFE } } }
  2452.  
  2453.     ifai AISERVBAFFE 
  2454.         {
  2455.         ifpdistl 1000 { ifactioncount 3
  2456.                     {
  2457.                     addphealth -15
  2458.                     wackplayer
  2459.                     palfrom 32 32
  2460.                     resetactioncount
  2461.                     }
  2462.                 }
  2463.         }
  2464.  
  2465.     ifai AISERVHIT { ifcount 20 { ai AISERVPREPFIRE } }
  2466.  
  2467.  
  2468.     ifai AISERVPREPFIRE
  2469.         {
  2470.         ifcanshoottarget
  2471.             {
  2472.             ifactioncount 2 { resetactioncount ai AISERVFIRE }
  2473.             }
  2474.         }
  2475.  
  2476.     ifai AISERVFIRE
  2477.     {
  2478.         ifcount 20 { ai AISERVPREPFIRE }
  2479.         else    
  2480.         {
  2481.         ifactioncount 2
  2482.             {
  2483.             sound PRED_ATTACK
  2484.             shoot FIRELASER resetactioncount
  2485.             }
  2486.         }
  2487.     }
  2488.  
  2489. ifhitweapon state checkservhitstate
  2490.  
  2491.  
  2492. }
  2493. ifai AISERVFIRE
  2494.     {
  2495.     ifactioncount 2
  2496.         {
  2497.         sound PRED_ATTACK
  2498.         shoot FIRELASER
  2499.         resetactioncount
  2500.         }
  2501.     ifrnd 4 { ai AISERVRUN }
  2502.     }
  2503.  
  2504. ifai AISERVRUN
  2505.     {
  2506.     ifrnd 4 { ai AISERVFIRE }
  2507.     }
  2508. }
  2509. ifaction ASERVDEAD { }
  2510. else { ifrnd 1 { soundonce PIG_ATTACK } }
  2511. enda
  2512.  
  2513. // **********************
  2514.  
  2515. // **********************
  2516.  
  2517.  
  2518. action ACYBRPGWALKING       0     4    5    1    20
  2519. action ACYBRPGPREPFIRE     20    3    5    1    20
  2520. action ACYBRPGFIRE         30    1    5    1    128
  2521. action ACYBRPGFIRE2        35    1    5    1    40
  2522.  
  2523.  
  2524. action ACYBSWPROTCLOAK     94    1    5
  2525. action ACYBSWJUMPCLOAK    -40    1    5
  2526. action ACYBSWJUMP2CLOAK   -35    1    5
  2527. action ACYBSWCLOAK        -30    2    5    1    16
  2528. action ACYBSWWALKING       40    4    5    1    16
  2529. action ACYBSWATTACK        60    4    5    1    20
  2530. action ACYBSWPROT          -5    1    5
  2531. action ACYBSWJUMP          -20   1    5
  2532. action ACYBSWJUMP2         -15   1    5
  2533. action ACYBSWJUMP3         -10   1    5
  2534.  
  2535. action ACYBFLYWALK        -190   4    5    1    16
  2536. action ACYBFLYTIR1        -145   1    5
  2537. action ACYBFLYTIR2        -140   1    5
  2538. action ACYBFLYTIR3        -170   1    5
  2539. action ACYBFLYTIR         -170   2    5    1     7
  2540. action ACYBFLY1           -135   1    5
  2541. action ACYBFLY2           -130   1    5
  2542. action ACYBFLY3           -125   1    5
  2543. action ACYBFLYATTACK      -135   1    5
  2544. action ACYBFLYDOWN        -135   1    5
  2545. action ACYBFLYPROT1       -100   1    5
  2546. action ACYBFLYPROT2       -95    1    5
  2547. action ACYBFLYPROT3       -80    1    1
  2548.  
  2549.  
  2550. move CYBRPGWALKVEL 100
  2551. move CYBRPGRUNVEL 192
  2552. move CYBSTOP
  2553.  
  2554. move CYBSWWALKVEL 140
  2555. move CYBSWJUMPVEL 200
  2556.  
  2557. move CYBFLYWALKVEL    120
  2558. move CYBFLYUPVEL      0     -100      
  2559. move CYBFLYUP1VEL     140   -100
  2560. move CYBFLYUP2VEL     220   -100
  2561. move CYBFLYUP3VEL     350   -100
  2562. move CYBFLYDOWNVEL    70    10
  2563. move CYBFLYDOWN1VEL   140   100
  2564. move CYBFLYDOWN2VEL   220   100
  2565. move CYBFLYDOWN3VEL   350   100
  2566. move CYBFLYSTOPUPVEL  0     -100
  2567.  
  2568. ai AICYBRPGGETENEMY ACYBRPGWALKING CYBRPGWALKVEL seekplayer
  2569. ai AICYBRPGPREPFIRE ACYBRPGPREPFIRE CYBSTOP faceplayerslow
  2570. ai AICYBRPGFLEE ACYBRPGWALKING CYBRPGWALKVEL randomangle
  2571. ai AICYBRPGFIRE ACYBRPGFIRE CYBSTOP faceplayerslow
  2572. ai AICYBRPGFIRE2 ACYBRPGFIRE2 CYBSTOP faceplayer
  2573.  
  2574. ai AICYBSWSEARCH ACYBSWWALKING CYBSWWALKVEL seekplayer
  2575. ai AICYBSWATTACK ACYBSWATTACK CYBSTOP faceplayerslow
  2576. ai AICYBSWPROT ACYBSWPROT CYBSTOP faceplayer
  2577. ai AICYBSWJUMP ACYBSWJUMP CYBSTOP faceplayerslow
  2578. ai AICYBSWJUMP2 ACYBSWJUMP2 CYBSWJUMPVEL jumptoplayer
  2579. ai AICYBSWPROTCLOAK ACYBSWPROTCLOAK CYBSTOP faceplayer
  2580. ai AICYBSWJUMP2CLOAK ACYBSWJUMPCLOAK CYBSWJUMPVEL jumptoplayer
  2581.  
  2582. ai AICYBFLYWALK ACYBFLYWALK CYBFLYWALKVEL seekplayer
  2583. ai AICYBFLYTIR ACYBFLYTIR1 CYBSTOP faceplayerslow
  2584. ai AICYBFLY ACYBFLY1 CYBFLYUP1VEL seekplayer
  2585. ai AICYBFLY2 ACYBFLY1 CYBFLYUP1VEL randomangle
  2586. ai AICYBFLYPROT ACYBFLYPROT1 CYBSTOP
  2587.  
  2588. state checkcybhitstate
  2589.     ifdead
  2590.     {
  2591.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2592.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2593.  
  2594.     ifspritepal 0 { ifrnd 128 { spawn RPGAMMO } }
  2595.  
  2596.     ifspritepal 9
  2597.         {
  2598.         ifai AICYBFLYPROT { strength 70 break }
  2599.         state spawnstuff
  2600.         }
  2601.  
  2602.     ifspritepal 3
  2603.         {
  2604.         ifrnd 70 { spawn COLA }
  2605.         else { ifrnd 70 { spawn SHIELD } }
  2606.         }
  2607.  
  2608.       addkills 1
  2609.     state liz_body_jibs 
  2610.       hitradius 1500 2 5 8 10
  2611.     sound RPG_EXPLODE
  2612.     soundonce TURR_DYING
  2613.     spawn BURNING
  2614.     spawn EXPLOSION2BOT
  2615.     killit
  2616.         ifwasweapon RPG { hitradius 1500 2 5 8 10 sound SQUISHED state liz_body_jibs state delete_enemy }
  2617.         else ifwasweapon RADIUSEXPLOSION { hitradius 1500 2 5 8 10 sound SQUISHED state liz_body_jibs state delete_enemy }
  2618.     else { sound RPG_EXPLODE hitradius 1500 2 5 8 10 spawn EXPLOSION2    killit }
  2619.     }
  2620.     else
  2621.     {
  2622.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2623.     ifspritepal 3
  2624.         {
  2625.         ifaction ACYBSWCLOAK
  2626.             {
  2627.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2628.             }
  2629.         ifaction ACYBSWJUMPCLOAK
  2630.             {
  2631.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2632.             }
  2633.         ifaction ACYBSWJUMP2CLOAK
  2634.             {
  2635.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2636.             }
  2637.         ifaction ACYBSWWALKING
  2638.             {
  2639.             ifrnd 128 { ai AICYBSWPROT }
  2640.             }
  2641.         ifaction ACYBSWJUMP
  2642.             {
  2643.             ifrnd 128 { ai AICYBSWPROT }
  2644.             }
  2645.         ifaction ACYBSWJUMP2
  2646.             {
  2647.             ifrnd 128 { ai AICYBSWPROT }
  2648.             }
  2649.         ifaction ACYBSWJUMP3
  2650.             {
  2651.             ifrnd 128 { ai AICYBSWPROT }
  2652.             }
  2653.         }
  2654.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2655.     else
  2656.         {
  2657.         ifwasweapon RADIUSEXPLOSION { }
  2658.         else { ifrnd 100 { soundonce TURR_RECOG } }
  2659.         }
  2660.     }
  2661. ends
  2662.  
  2663. state cybaction
  2664.     {
  2665.     ifpdistl 5000 { ai AICYBRPGFLEE break }
  2666.     else
  2667.         {
  2668.         ifpdistl 14000
  2669.             {
  2670.             ifcansee
  2671.                 {
  2672.                 ifcanshoottarget
  2673.                     {
  2674.                     ifai  AICYBRPGFIRE { break }
  2675.                     else { ifrnd 4 { ai AICYBRPGPREPFIRE break } }
  2676.                     }
  2677.                 else { ai AICYBRPGGETENEMY break }
  2678.                 }
  2679.             }
  2680.         else
  2681.             {
  2682.             ifai AICYBRPGGETENEMY { soundonce TURR_ROAM }
  2683.             else { ai AICYBRPGGETENEMY break }
  2684.             }
  2685.         }
  2686.  
  2687.     }
  2688. ends
  2689.  
  2690. state cybaction2
  2691.     {
  2692.     ifpdistl 5000 { ai AICYBRPGFLEE break }
  2693.     else
  2694.         {
  2695. //        ifpdistl 14000
  2696. //            {
  2697.             ifcansee
  2698.                 {
  2699.                 ifcanshoottarget
  2700.                     {
  2701.                     ifai  AICYBRPGFIRE { break }
  2702.                     else { ifrnd 4 { ai AICYBRPGPREPFIRE break } }
  2703.                     }
  2704.                 else { ai AICYBRPGGETENEMY break }
  2705.                 }
  2706. //            }
  2707. //        else
  2708. //            {
  2709. //            ifai AICYBRPGGETENEMY { soundonce TURR_ROAM }
  2710. //            else { ai AICYBRPGGETENEMY break }
  2711. //            }
  2712.         }
  2713.  
  2714.     }
  2715. ends
  2716.  
  2717. actor LIZMANSPITTING 150 ai AICYBRPGFIRE2 cactor LIZMAN enda
  2718. actor LIZMANSTAYPUT 150 ai AICYBRPGFIRE2 cactor LIZMAN enda
  2719. actor LIZMANJUMP 150 ai AICYBFLYWALK spritepal 9 cactor LIZMAN enda
  2720.  
  2721. actor LIZMAN 80 fall
  2722. ifcansee
  2723. ifaction 0
  2724.     {
  2725.     ifspritepal 0 { strength 150 ai AICYBRPGGETENEMY }
  2726.     ifspritepal 3 { strength 200 ai AICYBSWSEARCH }
  2727.     ifspritepal 5 { spritepal 3 strength 200 ai AICYBSWSEARCH action ACYBSWCLOAK }
  2728.     ifspritepal 9 { strength 150 ai AICYBFLYWALK }
  2729.     }
  2730.  
  2731.  
  2732. ifspritepal 9
  2733. {
  2734. sizeto 30 30
  2735.  
  2736. ifai AICYBFLYPROT
  2737.     {
  2738.     ifaction ACYBFLYPROT1
  2739.         {
  2740.         ifcount 10 { action ACYBFLYPROT2  resetcount }
  2741.         }
  2742.  
  2743.     ifaction ACYBFLYPROT2
  2744.         {
  2745.         ifcount 10 { action ACYBFLYPROT3  resetcount }
  2746.         }
  2747.  
  2748.     ifaction ACYBFLYPROT3
  2749.         {
  2750.         ifbulletnear { }
  2751.         else
  2752.             {
  2753.             ifcansee { ifrnd 1 { ai AICYBFLYWALK } }
  2754.             else { ai AICYBFLYWALK }
  2755. //            ifhitspace { ai AICYBFLYWALK }
  2756.             }
  2757.         }
  2758.  
  2759.     }
  2760. else
  2761. {
  2762.  ifhitweapon state checkcybhitstate
  2763. ifai AICYBFLYWALK
  2764.     {
  2765.     soundonce TURR_ROAM
  2766.     ifpdistl 2000 { ai AICYBFLYTIR }
  2767.     
  2768.     ifbulletnear { ifrnd 8 { ai AICYBFLYPROT } }
  2769.     ifrnd 1 { ifrnd 64 { ai AICYBFLYPROT } }
  2770. //    ifhitspace { ai AICYBFLYPROT }
  2771.  
  2772.  
  2773.     iffloordistl 30 { }
  2774.     else { ai AICYBFLY action ACYBFLY3 }
  2775.  
  2776.     ifcansee
  2777.         {
  2778.         ifrnd 4 { ai AICYBFLYTIR }
  2779.         }
  2780.     ifp phigher
  2781.         {
  2782.         ifp pjetpack { }
  2783.         else
  2784.             {
  2785.             ifgapzl 150 { }
  2786.             else { ifcount 30 { sound DUKE_JETPACK_ON ai AICYBFLY } }
  2787.             }
  2788.         }
  2789.     
  2790.     ifrnd 1
  2791.         {
  2792.         ifrnd 128 { ai AICYBFLY }
  2793. //        else { ai AICYBFLY2 }
  2794.         }
  2795.  
  2796.     }
  2797.  
  2798. ifai AICYBFLY2
  2799.     {
  2800.     ifaction ACYBFLY1
  2801.         {
  2802. //        ifcount 10 { move CYBFLYUP3VEL }
  2803. //        ifcount 50 { action ACYBFLY3 move CYBFLYDOWNVEL }
  2804.         }
  2805.     ifaction ACYBFLY3 { iffloordistl 50 { ai AICYBFLYWALK } }
  2806.     }
  2807.  
  2808.  
  2809. ifai AICYBFLY
  2810.     {
  2811.     soundonce DUKE_JETPACK_IDLE 
  2812.     ifaction ACYBFLY1
  2813.         {
  2814.         ifp phigher { }
  2815.         else
  2816.             {
  2817. //            ifcount 100 { ifrnd 128 { action ACYBFLY3 move CYBFLYDOWNVEL randomangle } }
  2818.             ifrnd 1 { ifrnd 128 { action ACYBFLY3 move CYBFLYDOWNVEL randomangle } }
  2819.             ifcount 20
  2820.                 {
  2821.                 ifpdistl 12000 { action ACYBFLYATTACK move CYBSTOP faceplayerslow getv }
  2822.                 }
  2823.             }
  2824.         }
  2825.  
  2826.     ifaction ACYBFLYATTACK
  2827.         {
  2828.         ifcansee
  2829.             {
  2830.             ifcount 20
  2831.                 {
  2832.                 action ACYBFLY2
  2833.                 move CYBSTOP faceplayerslow getv
  2834.                 resetcount
  2835.                 }
  2836.             }
  2837.         ifrnd 8 { action ACYBFLY1 move CYBFLYUP1VEL seekplayer }
  2838.  
  2839.         ifpdistl 12000 { }
  2840.         else { action ACYBFLY1 move CYBFLYUP1VEL seekplayer }
  2841.         }
  2842.  
  2843.     ifaction ACYBFLY2
  2844.         {
  2845.         ifcount 20 { shoot MORTER action ACYBFLYATTACK resetcount move CYBFLYUP1VEL seekplayer }
  2846.         }
  2847.  
  2848.     ifaction ACYBFLYDOWN
  2849.         {
  2850.         ifcount 50 { action ACYBFLY1 move CYBFLYUP1VEL }
  2851.         iffloordistl 50 { action ACYBFLY1 move CYBFLYUP1VEL }
  2852.         }
  2853.  
  2854.  
  2855.     ifaction ACYBFLY3
  2856.         {
  2857.         iffloordistl 30 { soundonce DUKE_JETPACK_OFF ai AICYBFLYWALK }
  2858.         }
  2859.  
  2860.     }
  2861.  
  2862.  
  2863.  
  2864. ifai AICYBFLYTIR
  2865.     {
  2866.     ifbulletnear { ifrnd 8 { ai AICYBFLYPROT } }
  2867.     ifp phigher
  2868.         {
  2869.         ifp pjetpack { }
  2870.         else
  2871.             {
  2872.             ifgapzl 150 { }
  2873.             else { ifcount 40 { ai AICYBFLY } }
  2874.             }
  2875.         }
  2876.     ifaction ACYBFLYTIR1
  2877.         {
  2878.         soundonce TURR_ATTACK
  2879.         ifcount 10 { action ACYBFLYTIR2 resetcount }
  2880.         }
  2881.     ifaction ACYBFLYTIR2
  2882.         {
  2883.         ifcount 10 { action ACYBFLYTIR3 resetcount }
  2884.         }
  2885.     ifaction ACYBFLYTIR3
  2886.         {
  2887.         ifcount 20 { action ACYBFLYTIR resetcount }
  2888.         }
  2889.     ifaction ACYBFLYTIR
  2890.         {
  2891.         ifcansee 
  2892.             {
  2893.             ifrnd 8 { ai AICYBFLYWALK }
  2894.             ifactioncount 2 { shoot COOLEXPLOSION1 sound COMM_ATTACK resetactioncount action ACYBFLYTIR3 resetcount }
  2895. //            ifcount 10 { action ACYBFLYTIR3 resetcount }
  2896.             }
  2897.         else { ai AICYBFLYWALK }
  2898.         }
  2899.     }
  2900.  
  2901. }
  2902. }
  2903.  
  2904.  
  2905.  
  2906. ifactornotstayput
  2907. {
  2908.  
  2909. ifspritepal 3
  2910.     sizeto 40 35
  2911.  
  2912.     {
  2913.     ifhitweapon state checkcybhitstate
  2914.  
  2915.     ifai AICYBSWSEARCH
  2916.         {
  2917.         ifaction ACYBSWWALKING { ifrnd 1 { action ACYBSWCLOAK } }
  2918.         ifaction ACYBSWCLOAK { ifrnd 4 { action ACYBSWWALKING action ACYBSWCLOAK } }
  2919.  
  2920.         soundonce TURR_ROAM
  2921.         ifp phigher { ai AICYBSWJUMP }
  2922.         ifpdistl 1100
  2923.             {
  2924.             ifcansee { ifcanshoottarget { ai AICYBSWATTACK } }
  2925.             }
  2926.         ifrnd 1
  2927.             {
  2928.             ifaction ACYBSWCLOAK { ai AICYBSWJUMP action ACYBSWJUMPCLOAK }
  2929.             else { ai AICYBSWJUMP }
  2930.             }
  2931.         }
  2932.     
  2933.     ifai AICYBSWJUMP
  2934.         {
  2935.         ifaction ACYBSWJUMPCLOAK { ifcount 10 { ai AICYBSWJUMP2CLOAK } }
  2936.         else { ifcount 10 { ai AICYBSWJUMP2 } }
  2937.         }
  2938.  
  2939.     ifai AICYBSWJUMP2CLOAK
  2940.         {
  2941.         ifcount 10 { action ACYBSWJUMP2CLOAK }
  2942.         iffloordistl 20 { action ACYBSWJUMP2CLOAK }
  2943.         ifaction ACYBSWJUMP2CLOAK
  2944.             {
  2945.             iffloordistl 10 { ifcount 5 { ai AICYBSWSEARCH action ACYBSWCLOAK } }
  2946.             }
  2947.         }
  2948.  
  2949.  
  2950.     ifai AICYBSWJUMP2
  2951.         {
  2952.         ifcount 10 { action ACYBSWJUMP3 }
  2953.         iffloordistl 20 { action ACYBSWJUMP3 }
  2954.         ifaction ACYBSWJUMP3
  2955.             {
  2956.             iffloordistl 10 { ifcount 5 { ai AICYBSWSEARCH } }
  2957.             }
  2958.         }
  2959.  
  2960.     ifai AICYBSWPROT { ifcount 10 { ai AICYBSWSEARCH } }
  2961.  
  2962.     ifai AICYBSWPROTCLOAK { ifcount 7 { ai AICYBSWSEARCH action ACYBSWCLOAK } }
  2963.  
  2964.  
  2965.     ifai AICYBSWATTACK
  2966.         {
  2967.         ifcansee 
  2968.             {
  2969.             ifcanshoottarget
  2970.                 {
  2971.                 ifactioncount 3 { soundonce SLIM_RECOG palfrom 32 32 wackplayer addphealth -15 resetactioncount }
  2972.                 ifactioncount 1 { soundonce TURR_PAIN }
  2973.                 }
  2974.             }
  2975.         ifpdistl 1200 { }
  2976.         else { ai AICYBSWSEARCH }
  2977.         }
  2978.  
  2979.     }
  2980.  
  2981.  
  2982. ifspritepal 0
  2983.     {
  2984.     ifhitweapon state checkcybhitstate
  2985.     ifai AICYBRPGPREPFIRE
  2986.         {
  2987.         soundonce TURR_ATTACK
  2988.         ifactioncount 3 { ai  AICYBRPGFIRE }
  2989.         }
  2990.     
  2991.     ifai AICYBRPGFIRE
  2992.         {
  2993.         state cybaction
  2994.         ifcount 90    { ai AICYBRPGFIRE2 }
  2995.         }
  2996.  
  2997.     ifai AICYBRPGFIRE2
  2998.         {
  2999.         ifactioncount 2 { }
  3000.         else 
  3001.             {
  3002.             ifcount 10 { soundonce RPG_SHOOT shoot RPG ai AICYBRPGFIRE }
  3003.             }
  3004.         }
  3005.  
  3006.     ifai AICYBRPGFLEE
  3007.         {
  3008.         soundonce TURR_ROAM
  3009.         ifpdistl 5000 { ifrnd 1 { ifrnd 128 { ai AICYBRPGPREPFIRE } } }
  3010.         else { ai AICYBRPGPREPFIRE }
  3011.         }
  3012.  
  3013.     ifai AICYBRPGGETENEMY
  3014.         {
  3015.         soundonce TURR_ROAM
  3016.         state cybaction
  3017.         }
  3018.     }
  3019.  
  3020. }
  3021. else
  3022. {
  3023.  
  3024. ifspritepal 0
  3025.     {
  3026.     ifhitweapon state checkcybhitstate
  3027.     ifai AICYBRPGPREPFIRE
  3028.         {
  3029.         soundonce TURR_ATTACK
  3030.         ifactioncount 3 { ai  AICYBRPGFIRE }
  3031.         }
  3032.     
  3033.     ifai AICYBRPGFIRE
  3034.         {
  3035.         state cybaction2
  3036.         ifrnd 1 { ai AICYBRPGFIRE2 }
  3037.         }
  3038.  
  3039.     ifai AICYBRPGFIRE2
  3040.         {
  3041.         ifactioncount 2 { }
  3042.         else 
  3043.             {
  3044.             ifcount 10 { soundonce RPG_SHOOT shoot RPG ai AICYBRPGFIRE }
  3045.             }
  3046.         }
  3047.  
  3048.     ifai AICYBRPGFLEE
  3049.         {
  3050.         soundonce TURR_ROAM
  3051.         ifpdistl 5000 { ifrnd 1 { ifrnd 128 { ai AICYBRPGPREPFIRE move CYBRPGWALKVEL fleeenemy } } }
  3052.         else { ai AICYBRPGPREPFIRE }
  3053.         }
  3054.  
  3055.     ifai AICYBRPGGETENEMY
  3056.         {
  3057.         soundonce TURR_ROAM
  3058.         state cybaction2
  3059.         }
  3060.     }
  3061.  
  3062. }
  3063. enda
  3064.  
  3065.  
  3066.  
  3067. // ********************
  3068. // ****  SENTINEL  ****
  3069. // ********************
  3070.  
  3071.  
  3072. action SENTINELWAIT     1710  1   5   1   45
  3073. action SENTINELRAISE1   1715  1   5   1   45
  3074. action SENTINELRAISE2   1720  1   5   1   45
  3075. action SENTINELARMED    1725  1   5   1   45
  3076. action SENTINELFIRE     1725  2   5   1   7
  3077. action SENTINELHIT1     1740  2   5   1   7
  3078. action SENTINELHIT2     1750  2   5   1   7
  3079. action SENTINELFACE     1710  1   1   1   7
  3080. action ASENTTAS         1735  1   1
  3081.  
  3082. action SENTHURT 1905   1   5 
  3083. action SENTHFIRE 1900   2   5   1   7
  3084.  
  3085.  
  3086. move SENTINELWAITVELS 40 
  3087. move SENTINELRAISEVELS 0 0
  3088. move SENTINELSEEKVELS 60
  3089. move SENTINELRISE 40 -40
  3090. move SENTINELLOWER 32 40
  3091. move SENTINELDEADVELS 100 450
  3092. move SENTINELBULLVELS 252 -80
  3093. move SENTINELHUP 40 -50
  3094. move SENTINELHDOWN 40 50
  3095.  
  3096. ai AISENTTAS ASENTTAS SENTINELRAISEVELS
  3097.  
  3098. ai AISENTINELHUP SENTHURT SENTINELHUP faceplayerslow
  3099. ai AISENTINELHDOWN SENTHURT SENTINELHDOWN faceplayerslow
  3100. ai AISENTINELHFIRE SENTHFIRE SENTINELSEEKVELS seekplayer
  3101. ai AISENTINELDEAD SENTHURT SENTINELDEADVELS randomangle
  3102.  
  3103. ai AISENTINELWAIT SENTINELWAIT SENTINELWAITVELS randomangle
  3104. ai AISENTINELRAISE1 SENTINELRAISE1 SENTINELRAISEVELS seekplayer
  3105. ai AISENTINELRAISE2 SENTINELRAISE2 SENTINELRAISEVELS seekplayer
  3106. ai AISENTINELRAISEH1 SENTINELRAISE1 SENTINELRAISEVELS seekplayer
  3107. ai AISENTINELRAISEH2 SENTINELRAISE2 SENTINELRAISEVELS seekplayer
  3108. ai AISENTINELARMED SENTINELARMED SENTINELRAISEVELS seekplayer
  3109. ai AISENTINELFIRE SENTINELFIRE SENTINELSEEKVELS seekplayer
  3110. ai AISENTINELFIRE2 SENTINELFIRE SENTINELSEEKVELS seekplayer
  3111. ai AISENTINELHIT1 SENTINELHIT1 SENTINELRAISEVELS seekplayer
  3112. ai AISENTINELHIT2 SENTINELHIT2 SENTINELRAISEVELS seekplayer
  3113. ai AISENTINELHIT3 SENTINELHIT2 SENTINELRAISEVELS seekplayer
  3114.  
  3115. state pvertstate
  3116. ifp phigher    { move SENTINELRISE seekplayer }
  3117. else { move SENTINELLOWER seekplayer }
  3118. ends
  3119.  
  3120. state hchecksentinelhitstate
  3121.     ifdead
  3122.     {
  3123.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3124.     stopsound LIZARD_SPIT
  3125.     stopsound RECO_DYING
  3126.     addkills 1
  3127.         spawn EXPLOSION2
  3128.         sound RPG_EXPLODE
  3129.         hitradius 3048 10 20 30 40
  3130.     ai AISENTINELDEAD
  3131.     }
  3132.     else
  3133.     {
  3134.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3135.       debris SCRAP2 1
  3136.     ai AISENTINELHFIRE
  3137.     }
  3138. ends
  3139.  
  3140. state checksentinelhitstate
  3141.     ifdead
  3142.     {
  3143.     strength 250
  3144.     ai AISENTINELHUP
  3145.         spawn EXPLOSION2
  3146.         sound RPG_EXPLODE
  3147.         hitradius 3048 10 20 30 40
  3148.     }
  3149.     else
  3150.     {
  3151.     ifwasweapon RPG { ai AISENTINELFIRE2 }
  3152.       debris SCRAP2 1
  3153.     ifai AISENTINELWAIT { ai AISENTINELHIT1 }
  3154.     ifai AISENTINELARMED { ai AISENTINELHIT2 }  
  3155.     ifai AISENTINELFIRE { ifrnd 75 { ai AISENTINELHIT3 } }
  3156.     }
  3157. ends
  3158.  
  3159. actor DRONE 250
  3160. sizeto 40 40
  3161.  
  3162. ifai AISENTTAS
  3163.     {
  3164.     strength 0
  3165.     cstat 0 
  3166.     ifhitweapon
  3167.         {
  3168.         ifwasweapon FREEZEBLAST { spawn BURNING }
  3169.         ifwasweapon KNEE { killit debris SCRAP1 8 debris SCRAP2 6 debris SCRAP3 7 } 
  3170.         ifwasweapon RADIUSEXPLOSION { killit debris SCRAP1 8 debris SCRAP2 6 debris SCRAP3 7 } 
  3171.         }
  3172.     }
  3173. else { soundonce RECO_ROAM }
  3174.  
  3175.  
  3176. ifcansee
  3177.     ifaction 0 { globalsound LIZARD_BEG ai AISENTINELWAIT }
  3178.  
  3179.     ifai AISENTINELHDOWN
  3180.         {
  3181.         ifrnd 8 { spawn EXPLOSION2 }
  3182.         ifrnd 2 { globalsound LIZARD_SPIT }
  3183.         ifrnd 1 { globalsound RECO_DYING }
  3184.         ifrnd 16 { ai AISENTINELHUP }
  3185.         }
  3186.  
  3187.     ifai AISENTINELHUP
  3188.         {
  3189.         ifrnd 8 { spawn EXPLOSION2 }
  3190.         ifrnd 2 { globalsound LIZARD_SPIT }
  3191.         ifrnd 1 { globalsound RECO_DYING }
  3192.         ifrnd 16 { ai AISENTINELHDOWN }
  3193.         }
  3194.  
  3195.     ifai AISENTINELHFIRE
  3196.         {
  3197.         ifrnd 2 { globalsound LIZARD_SPIT }
  3198.         ifrnd 8 { spawn EXPLOSION2 }
  3199.         ifrnd 8 { state pvertstate } soundonce RECO_ATTACK ifrnd 128 { shoot SHOTSPARK1 }
  3200.         }
  3201.  
  3202.     ifpdistl 12000
  3203.         {
  3204.         ifai AISENTINELHFIRE { ifcanshoottarget { } else ai AISENTINELHUP }
  3205.         ifai AISENTINELHUP { ifcanshoottarget { ai AISENTINELHFIRE } }
  3206.         ifai AISENTINELHDOWN { ifcanshoottarget { ai AISENTINELHFIRE } }
  3207.         ifai AISENTINELFIRE { ifcanshoottarget { } else ai AISENTINELWAIT }
  3208.         ifai AISENTINELFIRE2 { ifcanshoottarget { } else ai AISENTINELWAIT }
  3209.     
  3210.         ifai AISENTINELARMED { ifcanshoottarget { } else ai AISENTINELWAIT }
  3211.  
  3212.         ifcansee
  3213.             {
  3214.             ifcanshoottarget
  3215.                 {
  3216.                 ifcount 10 { ifai AISENTINELWAIT { globalsound DRON_ATTACK1 ai AISENTINELRAISE1 } }
  3217.                     ifcount 9 { ifai AISENTINELRAISE1 ai AISENTINELRAISE2 }
  3218.                     ifcount 8 { ifai AISENTINELRAISE2 ai AISENTINELARMED }
  3219.                 }
  3220.             }
  3221.         }
  3222.  
  3223.     ifai AISENTINELRAISEH1
  3224.         { }
  3225.     else
  3226.         {
  3227.         ifai AISENTINELRAISEH2
  3228.             { }
  3229.         else
  3230.             {
  3231.             ifpdistg 12000
  3232.                 {
  3233.                 ifai AISENTINELHFIRE { ifcanshoottarget { } else ai AISENTINELHUP }
  3234.                 ifcount 10
  3235.                     {
  3236.                     ifai AISENTINELARMED ai AISENTINELRAISE2
  3237.                     ifai AISENTINELFIRE { ifcansee { } else { ai AISENTINELRAISE2 } }
  3238.                     ifai AISENTINELFIRE2 { ifcansee { } else { ai AISENTINELRAISE2 } }
  3239.                     }
  3240.                     ifcount 9 { ifai AISENTINELRAISE2 ai AISENTINELRAISE1 }
  3241.                     ifcount 8 { ifai AISENTINELRAISE1 { globalsound DRON_ATTACK2 ai AISENTINELWAIT } }
  3242.                 }
  3243.             }
  3244.         }
  3245.     
  3246.     ifai AISENTINELARMED
  3247.         {
  3248.         ifcansee
  3249.             {
  3250.             ifcount 64 { move SENTINELSEEKVELS ai AISENTINELFIRE }
  3251.             }
  3252.          }
  3253.  
  3254.     ifai AISENTINELHIT1 { ifcount 5 { ai AISENTINELRAISEH1 } }
  3255.     ifai AISENTINELRAISEH1 { ifcount 5 { ai AISENTINELRAISEH2 } }
  3256.     ifai AISENTINELRAISEH2 { ifcount 5 { ai AISENTINELFIRE } }
  3257.     
  3258.     ifai AISENTINELHIT2 { ifcount 5 { ai AISENTINELFIRE } }
  3259.     ifai AISENTINELHIT3 { ifcount 2 { ai AISENTINELFIRE } }
  3260.  
  3261.     ifai AISENTINELFIRE
  3262.         {
  3263.         ifrnd 1 { globalsound RECO_PAIN }
  3264.         ifrnd 8 { state pvertstate } soundonce RECO_ATTACK shoot SHOTSPARK1
  3265.         }
  3266.     ifai AISENTINELFIRE2
  3267.         {
  3268.         ifrnd 1 { globalsound RECO_PAIN }
  3269.         ifrnd 8 { state pvertstate } sound RECO_ATTACK shoot SHOTSPARK1 shoot SHOTSPARK1
  3270.         }
  3271.  
  3272.       ifhitweapon
  3273.     {
  3274.     ifai AISENTINELHFIRE { state hchecksentinelhitstate }
  3275.     else
  3276.         {
  3277.         ifai AISENTINELHUP { state hchecksentinelhitstate }
  3278.         else
  3279.             {            
  3280.             ifai AISENTINELHDOWN { state hchecksentinelhitstate }
  3281.             else { state checksentinelhitstate }
  3282.             }
  3283.         }
  3284.     }
  3285.  
  3286.  
  3287.     ifai AISENTINELDEAD
  3288.         { 
  3289.         ifrnd 128 { spawn EXPLOSION2 }
  3290.          ifrnd 32 { fall }
  3291.         iffloordistl 20
  3292.             {
  3293.             spawn BURNING
  3294.             spawn EXPLOSION2
  3295.              debris SCRAP1 8
  3296.               debris SCRAP2 6
  3297.               debris SCRAP3 7
  3298.             sound RPG_EXPLODE
  3299.             hitradius 3048 10 20 30 40
  3300.             ai AISENTTAS fall
  3301.             }
  3302.         }
  3303. enda
  3304.  
  3305.  
  3306.  
  3307.  
  3308. // ********************
  3309. // ****  SPIDER  ****
  3310. // ********************
  3311.  
  3312.  
  3313. action ASPIDERATTACK   1880  3  5  1  20
  3314. action ASPIDERATTACK2  1970  2  5  1  20
  3315. action ASPIDERDYING    1895  3  5  1  17
  3316. action ASPIDERDEAD     1905  1  5
  3317. action ASPIDERRUN      1840  5  5  1  10
  3318. action ASPIDERHIT      1890  1  5
  3319. action ASPIDERMONTE    1870  2  5  1  13
  3320. // action ASPIDERHIT      1890  1  5
  3321.  
  3322. action ASPIDERRUNP     1750  5  5  1  13
  3323. action ASPIDERSTOPP    1750  1  5  1  10
  3324. action ASPIDERDOWN     1690  1  5
  3325. action ASPIDERMONTEP   1690  2  5  1  13
  3326.  
  3327. action ASPIDERBRULE    1865  1  1 
  3328. action ASPIDERTAS      1866  1  1
  3329.  
  3330. move SPIDERUP 100 -100
  3331. move SPIDERRUNVELS 230
  3332. move SPIDERSTOPVELS 0 0
  3333. move SPIDERWATERVELS 150 100
  3334.  
  3335. move SPIDERRUNPVELS 180 -100
  3336. move SPIDERDOWNVELS 100 100
  3337.  
  3338. ai AISPIDERATTACK ASPIDERATTACK SPIDERSTOPVELS faceplayer
  3339. ai AISPIDERATTACK2 ASPIDERATTACK2 SPIDERSTOPVELS faceplayer
  3340. ai AISPIDERUP ASPIDERMONTE SPIDERUP seekplayer
  3341. ai AISPIDERSEEK ASPIDERRUN SPIDERRUNVELS seekplayer
  3342. ai AISPIDERDYING ASPIDERDYING SPIDERSTOPVELS
  3343. ai AISPIDERHIT ASPIDERHIT SPIDERSTOPVELS seekplayer
  3344. ai AISPIDERSTOP ASPIDERATTACK SPIDERSTOPVELS 
  3345. ai AISPIDERDEAD ASPIDERDEAD SPIDERSTOPVELS
  3346. ai AISPIDERJUMP ASPIDERRUN SPIDERRUNVELS jumptoplayer
  3347.  
  3348. ai AISPIDERSEEKP ASPIDERRUNP SPIDERRUNPVELS seekplayer
  3349. ai AISPIDERSTOPP ASPIDERSTOPP SPIDERSTOPVELS 
  3350. ai AISPIDERDOWN ASPIDERDOWN SPIDERDOWNVELS
  3351. ai AISPIDERUPP ASPIDERMONTEP SPIDERUP seekplayer
  3352.  
  3353. ai AISPIDERBRULE ASPIDERBRULE SPIDERSTOPVELS faceplayer
  3354.  
  3355.  
  3356. state checkspiderhitstate
  3357.     spawn BLOOD
  3358.     ifdead
  3359.     {
  3360.         state standard_jibs 
  3361.       state random_wall_jibs
  3362.         addkills 1
  3363.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  3364.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  3365.       ai AISPIDERDYING fall
  3366.       ifwasweapon FREEZEBLAST { spawn BURNING action ASPIDERBRULE }
  3367.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3368.      }
  3369.     else
  3370.     {
  3371.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3372.     ifwasweapon FREEZEBLAST { spawn BURNING }
  3373.       else ifrnd 100 { ai AISPIDERHIT soundonce DRON_DYING }
  3374.         state random_wall_jibs
  3375.     }
  3376. ends
  3377.  
  3378. state checkspiderhitstatep
  3379.     spawn BLOOD
  3380.     ifdead
  3381.     {
  3382.     fall
  3383.     cactor OCTABRAIN
  3384.       ai AISPIDERDYING fall
  3385.       state standard_jibs 
  3386.     state random_wall_jibs
  3387.       addkills 1
  3388.       ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  3389.       else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  3390.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3391.     }
  3392.     else
  3393.     {
  3394.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3395.     soundonce DRON_DYING
  3396.     ifwasweapon FREEZEBLAST { spawn BURNING }
  3397.       state random_wall_jibs
  3398.     ifrnd 64 { cactor OCTABRAIN ai AISPIDERSEEK }
  3399.     }
  3400. ends
  3401.  
  3402. actor PIGCOP 110
  3403. sizeto 30 30
  3404. ifcansee
  3405.     ifaction 0 { soundonce COMM_SPIN ai AISPIDERSEEKP }
  3406.  
  3407.     ifai AISPIDERSEEKP { soundonce OCTA_ROAM ifrnd 4 { ai AISPIDERSTOPP } }
  3408.  
  3409.     ifai AISPIDERSTOPP { ifrnd 50 { ai AISPIDERSEEKP } }
  3410.  
  3411.     ifpdistg 1100 { }
  3412.     else {  ifcanshoottarget { ifrnd 8 { palfrom 32 32 wackplayer addphealth -10 } } }
  3413.  
  3414.     ifrnd 1 { ifrnd 128 { cactor OCTABRAIN ai AISPIDERSEEK } }
  3415.  
  3416.     ifhitweapon { state checkspiderhitstatep }
  3417. enda
  3418.  
  3419.  
  3420. actor OCTABRAIN 110 fall
  3421. sizeto 30 30
  3422. ifcansee
  3423.     ifaction 0 { soundonce COMM_SPIN ai AISPIDERSEEK }
  3424.  
  3425.     ifai AISPIDERSEEKP { ai AISPIDERSEEK }
  3426.     ifai AISPIDERSTOPP { ai AISPIDERSEEK }
  3427.     
  3428.     ifai AISPIDERSEEK
  3429.         {
  3430.         soundonce OCTA_ROAM
  3431.         ifrnd 3 { ai AISPIDERSTOP }
  3432.         }
  3433.  
  3434.     ifai AISPIDERSTOP    { ifrnd 20 { ai AISPIDERSEEK } }
  3435.  
  3436.     ifai AISPIDERDEAD { }
  3437.     else
  3438.     {
  3439.     ifai AISPIDERDYING { }
  3440.     else
  3441.         {
  3442.         ifai AISPIDERUP { }
  3443.         else
  3444.             { 
  3445.             ifai AISPIDERATTACK { }
  3446.             else { ifpdistl 1100 { ai AISPIDERATTACK } }
  3447.             }
  3448.         }
  3449.     }    
  3450.  
  3451.     ifai AISPIDERHIT
  3452.         {
  3453.         ifcount 10
  3454.             {
  3455.             ai AISPIDERSEEK
  3456.             ifspritepal 1 { spritepal 0 }
  3457.             }
  3458.         }
  3459.     
  3460.     ifai AISPIDERATTACK
  3461.         {
  3462.         ifpdistg 1100 { ai AISPIDERSEEK }
  3463.         else ifcanshoottarget { ifrnd 8 { soundonce CAPT_DYING palfrom 32 32 wackplayer addphealth -20 } }
  3464.         }
  3465.  
  3466.     ifai AISPIDERDEAD { }
  3467.     else
  3468.     {
  3469.     ifai AISPIDERDYING { soundonce DRON_JETSND }
  3470.     else
  3471.     {
  3472.     ifp pjetpack { }
  3473.     else
  3474.         {
  3475.         ifp phigher
  3476.             {
  3477.             ifai AISPIDERSTOP { }
  3478.             else { ifcount 80 { ai AISPIDERUP }    }
  3479.             }
  3480.         }
  3481.     }
  3482.     }
  3483.  
  3484.     
  3485.     ifai AISPIDERUP { ifp phigher { } else { ifcount 8 { ai AISPIDERSEEK fall } } }
  3486.  
  3487.     ifai AISPIDERUP { ifp pjetpack { ai AISPIDERSEEK } }
  3488.                 
  3489.     ifai AISPIDERDYING
  3490.         {
  3491.         ifspritepal 1
  3492.             {
  3493.             spawn RECON
  3494.             }
  3495.         ifaction ASPIDERBRULE { ai AISPIDERDEAD fall action ASPIDERBRULE }
  3496.         else
  3497.             {
  3498.             ifcount 12 { spritepal 0 ai AISPIDERDEAD fall }
  3499.             }
  3500.         }
  3501.  
  3502.     ifai AISPIDERDEAD { strength 0 cstat 0 }
  3503.  
  3504.     ifhitweapon state checkspiderhitstate
  3505.  
  3506. enda
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513. // ********************
  3514. // ****    MECH    ****
  3515. // ********************
  3516.  
  3517.  
  3518. action AMECHWALK      0  4  5  1  30
  3519. action AMECHPREPFIRE  20 3  5  1  40
  3520. action AMECHFIRE      30 2  5  1  7
  3521. action AMECHFIRE2     30 2  5  1  30
  3522. action AMECHDYING     40 8  1  1  18
  3523. action AMECHDEAD      -5 1  5  1
  3524.  
  3525. move MECHWALKVELS 170
  3526. move MECHSTOPVELS 0
  3527.  
  3528. ai AIMECHDYING AMECHDYING MECHSTOPVELS
  3529. ai AIMECHWALK AMECHWALK MECHWALKVELS randomangle
  3530. ai AIMECHPREPFIRE AMECHPREPFIRE MECHSTOPVELS faceplayer
  3531. ai AIMECHFIRE AMECHFIRE MECHSTOPVELS faceplayerslow
  3532. ai AIMECHFIRE2 AMECHFIRE2 MECHSTOPVELS faceplayerslow
  3533. ai AIMECHSEARCH AMECHWALK MECHWALKVELS seekplayer
  3534. ai AIMECHDWALK AMECHWALK MECHWALKVELS randomangle
  3535. ai AIMECHDPREPFIRE AMECHPREPFIRE MECHSTOPVELS faceplayer
  3536. ai AIMECHDFIRE AMECHFIRE MECHSTOPVELS faceplayerslow
  3537. ai AIMECHDFIRE2 AMECHFIRE2 MECHSTOPVELS faceplayerslow
  3538. ai AIMECHDSEARCH AMECHWALK MECHWALKVELS seekplayer
  3539.  
  3540.  
  3541. state mechhitstate
  3542.     ifdead
  3543.     {
  3544.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3545.     ifai AIMECHWALK { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3546.     else
  3547.         {
  3548.         ifai AIMECHSEARCH { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3549.         else
  3550.             {
  3551.             ifai AIMECHFIRE { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3552.             else
  3553.                 {
  3554.                 ifai AIMECHFIRE2    { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3555.                 else
  3556.                     {
  3557.                     ifai AIMECHPREPFIRE { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3558.                     else
  3559.                         {
  3560.                         addkills 1
  3561.                         spawn EXPLOSION2
  3562.                         spawn BURNING
  3563.                         debris SCRAP2 4
  3564.                         debris SCRAP1 4
  3565.                         debris SCRAP3 4
  3566.                         sound RPG_EXPLODE
  3567.                         hitradius 1548 10 20 30 40 
  3568.                         ai AIMECHDYING
  3569.                         }
  3570.                     }
  3571.                 }
  3572.             }
  3573.         }
  3574.     }
  3575.     else
  3576.     {
  3577.     ifrnd 128 {    soundonce COMM_PAIN }
  3578.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3579.     else { soundonce COMM_DYING }
  3580.     debris SCRAP2 1
  3581.     }
  3582. ends
  3583.  
  3584. actor BOSS3 3000 fall
  3585. ifspritepal 3 { sizeto 75 75 }
  3586. ifcansee
  3587. ifaction 0 { ifspritepal 3 { strength 10 } soundonce BOS3_RECOG ai AIMECHWALK }
  3588.  
  3589. ifaction AMECHDEAD { }
  3590. else { ifai AIMECHDYING { ifactioncount 8 { action AMECHDEAD spawn LIZTROOP } } }
  3591.  
  3592. ifai AIMECHWALK
  3593.     {
  3594.     ifspritepal 3 { }
  3595.     else { ifrnd 1 { spawn SHARK } }
  3596.     ifactioncount 1 { soundonce BOS3_ROAM }
  3597.     ifactioncount 2 { soundonce BOS3_PAIN }
  3598.     ifactioncount 3 { soundonce BOS3_ROAM }
  3599.     ifactioncount 4 { soundonce BOS3_PAIN resetactioncount }
  3600.     ifcansee { ifrnd 3 { ai AIMECHPREPFIRE resetactioncount } }
  3601.     else { ifrnd 6 { ai AIMECHSEARCH } }
  3602.     }
  3603.  
  3604. ifai AIMECHSEARCH
  3605.     {
  3606.     ifactioncount 1 { soundonce BOS3_ROAM }
  3607.     ifactioncount 2 { soundonce BOS3_PAIN }
  3608.     ifactioncount 3 { soundonce BOS3_ROAM }
  3609.     ifactioncount 4 { soundonce BOS3_PAIN resetactioncount }
  3610.     ifrnd 1
  3611.         {
  3612.         ifspritepal 3 { }
  3613.         else { spawn SHARK }
  3614.         }
  3615.     ifcansee { ifrnd 3 { ai AIMECHPREPFIRE resetactioncount } }
  3616.     }
  3617.  
  3618. ifai AIMECHPREPFIRE
  3619.     {
  3620.     ifactioncount 3
  3621.         {
  3622.         ifrnd 128 { ai AIMECHFIRE }
  3623.         else
  3624.             {
  3625.             ifrnd 100 { ai AIMECHFIRE }
  3626.             else { ai AIMECHFIRE2 }
  3627.             }
  3628.         }
  3629.     }
  3630.  
  3631. ifaction AMECHDEAD { }
  3632. else { ifpdistl 1000 { addphealth -100 } }
  3633.  
  3634. ifai AIMECHFIRE2
  3635.     {
  3636.     ifactioncount 2    
  3637.         {
  3638.         shoot RPG
  3639.         resetactioncount
  3640.         }
  3641.     ifrnd 3 { ai AIMECHWALK }
  3642.     } 
  3643.  
  3644. ifai AIMECHFIRE
  3645.     {
  3646.     ifactioncount 2    
  3647.         {
  3648.         sound BOS3_ATTACK1 shoot FIRELASER shoot FIRELASER shoot FIRELASER
  3649.         resetactioncount
  3650.         }
  3651.     ifrnd 3 { ai AIMECHWALK }
  3652.     } 
  3653.  
  3654. ifai AIMECHDWALK
  3655.     {
  3656. //    ifrnd 20 { spawn EXPLOSION2 }
  3657.     ifspritepal 3 { }
  3658.     else { ifrnd 1 { spawn SHARK } }
  3659.     ifrnd 3 { ifcansee { ai AIMECHDPREPFIRE resetactioncount } }
  3660.     else { ifrnd 6 { ai AIMECHDSEARCH } }
  3661.     }
  3662.  
  3663. ifai AIMECHDSEARCH
  3664.     {
  3665. //    ifrnd 20 { spawn EXPLOSION2 }
  3666.     ifrnd 1 { spawn SHARK }
  3667.     ifrnd 3 { ifcansee { ai AIMECHDPREPFIRE resetactioncount } }
  3668.     }
  3669.  
  3670. ifai AIMECHDPREPFIRE
  3671.     {
  3672. //    ifrnd 20 { spawn EXPLOSION2 }
  3673.     ifactioncount 3
  3674.         {
  3675.         ifrnd 128 { ai AIMECHDFIRE }
  3676.         else
  3677.             {
  3678.             ifrnd 100 { ai AIMECHDFIRE }
  3679.             else { ai AIMECHDFIRE2 }
  3680.             }
  3681.         }
  3682.     }
  3683.  
  3684.  
  3685. ifai AIMECHDFIRE2
  3686.     {
  3687. //    ifrnd 20 { spawn EXPLOSION2 }
  3688.     ifactioncount 2    
  3689.         {
  3690.         shoot RPG
  3691.         resetactioncount
  3692.         }
  3693.     ifrnd 3 { ai AIMECHDWALK }
  3694.     } 
  3695.  
  3696. ifai AIMECHDFIRE
  3697.     {
  3698. //    ifrnd 20 { spawn EXPLOSION2 }
  3699.     ifactioncount 2    
  3700.         {
  3701.         soundonce BOS3_ATTACK1 shoot FIRELASER shoot FIRELASER shoot FIRELASER
  3702.         resetactioncount
  3703.         }
  3704.     ifrnd 3 { ai AIMECHDWALK }
  3705.     } 
  3706.  
  3707.     ifhitweapon state mechhitstate
  3708.  
  3709.  
  3710. enda
  3711.  
  3712.  
  3713.  
  3714. // ********************
  3715. // ****  SCREAMER  ****
  3716. // ********************
  3717.  
  3718. action SCREAMERFLY     1720  1   7   1   10
  3719. action SCREAMERFIRE     1727  1   7   1   10
  3720. action SCREAMERUPFLY    1810  1   7   1   10
  3721. action SCREAMERUPFIRE   1817  1   7   1   10
  3722.  
  3723. move SCREAMERFLYVELS  320  100 
  3724. move SCREAMERTURNVELS 320
  3725. move SCREAMERUPVELS   320 -100
  3726. move SCREAMERDOWNVELS 320 100
  3727. move SCREAMERDEADVELS 320 450
  3728. move SCREAMERSTOPVELS 0 0
  3729.  
  3730. move SCREAMERFLYVELSW  100 75 
  3731. move SCREAMERTURNVELSW 100
  3732. move SCREAMERUPVELSW   100 -75
  3733. move SCREAMERDOWNVELSW 100 75
  3734. move SCREAMERDEADVELSW 100 75
  3735. move SCREAMERSTOPVELSW 0   0
  3736.  
  3737. ai AISCREAMERFLY SCREAMERFLY SCREAMERFLYVELS faceplayerslow
  3738. ai AISCREAMERFLYUP SCREAMERUPFLY SCREAMERUPVELS faceplayerslow
  3739. ai AISCREAMERFLY2 SCREAMERFLY SCREAMERFLYVELS faceplayerslow
  3740. ai AISCREAMERTURN SCREAMERFLY SCREAMERTURNVELS randomangle
  3741. ai AISCREAMERFLEE SCREAMERUPFLY SCREAMERUPVELS randomangle
  3742. ai AISCREAMERDEAD SCREAMERFLY SCREAMERDEADVELS randomangle
  3743. ai AISCREAMERFIRE SCREAMERFIRE SCREAMERTURNVELS faceplayerslow
  3744. ai AISCREAMERUPFIRE SCREAMERUPFIRE SCREAMERUPVELS faceplayerslow
  3745.  
  3746. state checkscreamerhitstate
  3747.     ifdead
  3748.     {
  3749.         addkills 1
  3750.         spawn EXPLOSION2
  3751.         sound RPG_EXPLODE
  3752.         hitradius 1548 10 20 30 40
  3753.     ifai AISCREAMERDEAD { }
  3754.     else
  3755.         {
  3756.         ai AISCREAMERDEAD
  3757.         ifinwater { move SCREAMERFLYVELSW randomangle }
  3758.         }
  3759.     ifwasweapon RPG { killit }
  3760.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3761.  
  3762.     }
  3763.     else
  3764.     {
  3765.        ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3766.     ifwasweapon RPG { killit }
  3767.     else
  3768.     {
  3769.  
  3770.     ifinwater
  3771.             {
  3772.             ai AISCREAMERFLY2
  3773.             move SCREAMERFLYVELSW faceplayerslow
  3774.             }
  3775.     else { ai AISCREAMERFLY2 }
  3776.  
  3777.     debris SCRAP2 1
  3778.     ifrnd 128 {    soundonce COMM_PAIN }
  3779.     else { soundonce COMM_DYING }
  3780.     }
  3781.     }
  3782. ends
  3783.  
  3784. actor COMMANDER 65
  3785. soundonce COMM_ROAM
  3786. ifcansee
  3787.     ifaction 0
  3788.     {
  3789.     ai AISCREAMERFLY
  3790.     ifinwater { move SCREAMERFLYVELSW faceplayerslow }
  3791.     }
  3792.  
  3793.     ifpdistl 3000 { soundonce BOS3_ATTACK2 }
  3794.  
  3795.     ifai AISCREAMERDEAD
  3796.         { 
  3797.         ifinwater
  3798.             {
  3799.             ifrnd 128 { spawn SMALLSMOKE }
  3800.             iffloordistl 20
  3801.                 {
  3802.                 spawn EXPLOSION2
  3803.                  debris SCRAP1 8
  3804.                   debris SCRAP2 6
  3805.                      debris SCRAP3 7
  3806.                 sound RPG_EXPLODE
  3807.                 hitradius 1500 10 20 30 40
  3808.                 killit
  3809.                 }
  3810.             }
  3811.         else
  3812.             {
  3813.             ifrnd 128 { spawn SMALLSMOKE }
  3814.             ifrnd 32 { fall }
  3815.             iffloordistl 20
  3816.                 {
  3817.                 spawn BURNING
  3818.                 spawn EXPLOSION2
  3819.                  debris SCRAP1 8
  3820.                   debris SCRAP2 6
  3821.                      debris SCRAP3 7
  3822.                 sound RPG_EXPLODE
  3823.                 hitradius 1500 10 20 30 40
  3824.                 killit
  3825.                 }
  3826.             }
  3827.         }
  3828.  
  3829.     ifai AISCREAMERDEAD { }
  3830.     else
  3831.         {
  3832.         ifpdistg 3000 { }
  3833.         else
  3834.             {
  3835.             ifinwater
  3836.                 {
  3837.                 ai AISCREAMERFLEE
  3838.                 move SCREAMERUPVELSW randomangle
  3839.                 }
  3840.             else { ai AISCREAMERFLEE }
  3841.             }
  3842.         }    
  3843.  
  3844.     ifai AISCREAMERFLY2
  3845.     {
  3846.     ifinwater
  3847.         {
  3848.         ifp phigher
  3849.             {
  3850.             ai AISCREAMERFLEE
  3851.             move SCREAMERUPVELSW randomangle
  3852.             }
  3853.         ifrnd 8
  3854.             {
  3855.             ai AISCREAMERFIRE
  3856.             move SCREAMERTURNVELSW faceplayerslow
  3857.             }
  3858.         }
  3859.     else
  3860.         {
  3861.         ifrnd 64 { spawn SMALLSMOKE }
  3862.         ifp phigher { ai AISCREAMERFLEE }
  3863.         ifrnd 8 { ai AISCREAMERFIRE }
  3864.         }
  3865.     }
  3866.  
  3867.     ifai AISCREAMERFLY
  3868.     {
  3869.     ifinwater
  3870.         {
  3871.             ifp phigher
  3872.                 {
  3873.                 ai AISCREAMERFLEE
  3874.                 move SCREAMERUPVELSW randomangle
  3875.                 }
  3876.             ifrnd 8
  3877.                 {
  3878.                 ifp phigher
  3879.                     {
  3880.                     ai AISCREAMERUPFIRE
  3881.                     move SCREAMERUPVELSW faceplayerslow
  3882.                     }
  3883.                 else
  3884.                     {
  3885.                     ai AISCREAMERFIRE
  3886.                     move SCREAMERTURNVELSW faceplayerslow 
  3887.                     }
  3888.                 }
  3889.         }
  3890.     else
  3891.         {
  3892.             ifp phigher { ai AISCREAMERFLEE }
  3893.             ifrnd 8
  3894.                 {
  3895.                 ifp phigher { ai AISCREAMERUPFIRE }
  3896.                 else { ai AISCREAMERFIRE }
  3897.                 }
  3898.         }
  3899.     }
  3900.  
  3901.     ifai AISCREAMERFIRE
  3902.     {
  3903.     ifcount 5 { sound COMM_ATTACK shoot FIRELASER }
  3904.     ifcount 10
  3905.         {
  3906.         ifinwater
  3907.             {
  3908.             ai AISCREAMERTURN
  3909.             move SCREAMERTURNVELSW randomangle
  3910.             }
  3911.         else { ai AISCREAMERTURN }
  3912.         }
  3913.     }
  3914.  
  3915.     ifai AISCREAMERUPFIRE
  3916.     {
  3917.     ifcount 5 {    sound COMM_ATTACK shoot FIRELASER }
  3918.     ifcount 10
  3919.         {
  3920.         ifinwater
  3921.             {
  3922.             ai AISCREAMERTURN
  3923.             move SCREAMERTURNVELSW randomangle
  3924.             }
  3925.         else { ai AISCREAMERTURN }
  3926.         }
  3927.     }
  3928.  
  3929.     ifai AISCREAMERFLEE
  3930.         {
  3931.         ifinwater
  3932.             {
  3933.             ifrnd 4
  3934.                 {
  3935.                 ai AISCREAMERTURN
  3936.                 move SCREAMERTURNVELSW randomangle
  3937.                 }
  3938.             }
  3939.         else { ifrnd 8 { ai AISCREAMERTURN } }
  3940.         }
  3941.  
  3942.     ifai AISCREAMERTURN
  3943.         {
  3944. //        ifcount 10
  3945.             {
  3946.             ifinwater
  3947.                 {
  3948.                 ifp phigher
  3949.                     {
  3950.                     ai AISCREAMERFLYUP
  3951.                     move SCREAMERUPVELSW faceplayerslow
  3952.                     }
  3953.                 ifcount 50
  3954.                     {
  3955.                     ai AISCREAMERFLY
  3956.                     move SCREAMERFLYVELSW faceplayerslow
  3957.                     }
  3958.                 }
  3959.             else
  3960.                 {
  3961.                     ifp phigher { ai AISCREAMERFLYUP }
  3962.                 ifcount 32
  3963.                     { ai AISCREAMERFLY }
  3964.                 }
  3965.             }
  3966.         }
  3967.  
  3968.     ifai AISCREAMERFLYUP
  3969.         {
  3970.         ifinwater
  3971.             {
  3972.             ifrnd 8
  3973.                 {
  3974.                 ifp phigher
  3975.                     {
  3976.                     ai AISCREAMERUPFIRE
  3977.                     move SCREAMERUPVELSW faceplayerslow
  3978.                     }
  3979.                 else
  3980.                     {
  3981.                     ai AISCREAMERFIRE
  3982.                     move SCREAMERTURNVELSW faceplayerslow
  3983.                     }
  3984.                 }
  3985.             }
  3986.          else
  3987.             {
  3988.             ifrnd 8
  3989.                 {
  3990.                 ifp phigher { ai AISCREAMERUPFIRE }
  3991.                 else { ai AISCREAMERFIRE }
  3992.                 }
  3993.             }
  3994.         }
  3995.  
  3996.     ifhitweapon state checkscreamerhitstate
  3997.  
  3998. enda
  3999.  
  4000.  
  4001.  
  4002.